View | Details | Raw Unified | Return to bug 28924
Collapse All | Expand All

(-)a/C4/Circulation.pm (-42 / +51 lines)
Lines 819-827 sub CanBookBeIssued { Link Here
819
    #
819
    #
820
    # BORROWER STATUS
820
    # BORROWER STATUS
821
    #
821
    #
822
    if ( $patron->category->category_type eq 'X' && ( $item_object->barcode ) ) {
822
    my $patron_borrowing_status = $patron->can_borrow({ patron => $patron });
823
823
    if ( $patron->category->category_type eq 'X' && (  $item_object->barcode  )) {
824
        # stats only borrower -- add entry to statistics table, and return issuingimpossible{STATS} = 1  .
824
    	# stats only borrower -- add entry to statistics table, and return issuingimpossible{STATS} = 1  .
825
        C4::Stats::UpdateStats(
825
        C4::Stats::UpdateStats(
826
            {
826
            {
827
                branch         => C4::Context->userenv->{'branch'},
827
                branch         => C4::Context->userenv->{'branch'},
Lines 865-927 sub CanBookBeIssued { Link Here
865
    my $non_issues_charges = $account->non_issues_charges;
865
    my $non_issues_charges = $account->non_issues_charges;
866
    my $other_charges = $balance - $non_issues_charges;
866
    my $other_charges = $balance - $non_issues_charges;
867
867
868
    my $amountlimit = C4::Context->preference("noissuescharge");
869
    my $allowfineoverride = C4::Context->preference("AllowFineOverride");
868
    my $allowfineoverride = C4::Context->preference("AllowFineOverride");
870
    my $allfinesneedoverride = C4::Context->preference("AllFinesNeedOverride");
869
    my $allfinesneedoverride = C4::Context->preference("AllFinesNeedOverride");
871
870
872
    # Check the debt of this patrons guarantees
871
    # Check the debt of this patrons guarantees
873
    my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees");
872
    my $no_issues_charge_guarantees = $patron_borrowing_status->{NoIssuesChargeGuarantees}->{limit};
874
    $no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees );
873
    $no_issues_charge_guarantees = undef unless looks_like_number($no_issues_charge_guarantees);
875
    if ( defined $no_issues_charge_guarantees ) {
874
    if ( defined $no_issues_charge_guarantees ) {
876
        my @guarantees = map { $_->guarantee } $patron->guarantee_relationships->as_list;
875
        if ( $patron_borrowing_status->{NoIssuesChargeGuarantees}->{overlimit} && !$inprocess && !$allowfineoverride ) {
877
        my $guarantees_non_issues_charges = 0;
876
            $issuingimpossible{DEBT_GUARANTEES} = $patron_borrowing_status->{NoIssuesChargeGuarantees}->{charge};
878
        foreach my $g ( @guarantees ) {
877
        } elsif ( $patron_borrowing_status->{NoIssuesChargeGuarantees}->{overlimit}
879
            $guarantees_non_issues_charges += $g->account->non_issues_charges;
878
            && !$inprocess
880
        }
879
            && $allowfineoverride )
881
880
        {
882
        if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$inprocess && !$allowfineoverride) {
881
            $needsconfirmation{DEBT_GUARANTEES} = $patron_borrowing_status->{NoIssuesChargeGuarantees}->{charge};
883
            $issuingimpossible{DEBT_GUARANTEES} = $guarantees_non_issues_charges;
882
        } elsif ( $allfinesneedoverride
884
        } elsif ( $guarantees_non_issues_charges > $no_issues_charge_guarantees && !$inprocess && $allowfineoverride) {
883
            && $patron_borrowing_status->{NoIssuesChargeGuarantees}->{charge} > 0
885
            $needsconfirmation{DEBT_GUARANTEES} = $guarantees_non_issues_charges;
884
            && !$inprocess )
886
        } elsif ( $allfinesneedoverride && $guarantees_non_issues_charges > 0 && $guarantees_non_issues_charges <= $no_issues_charge_guarantees && !$inprocess ) {
885
        {
887
            $needsconfirmation{DEBT_GUARANTEES} = $guarantees_non_issues_charges;
886
            $needsconfirmation{DEBT_GUARANTEES} = $patron_borrowing_status->{NoIssuesChargeGuarantees}->{charge};
888
        }
887
        }
889
    }
888
    }
890
889
891
    # Check the debt of this patrons guarantors *and* the guarantees of those guarantors
890
    # Check the debt of this patrons guarantors *and* the guarantees of those guarantors
892
    my $no_issues_charge_guarantors = C4::Context->preference("NoIssuesChargeGuarantorsWithGuarantees");
891
    my $no_issues_charge_guarantors = $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{limit};
893
    $no_issues_charge_guarantors = undef unless looks_like_number( $no_issues_charge_guarantors );
892
    $no_issues_charge_guarantors = undef unless looks_like_number($no_issues_charge_guarantors);
894
    if ( defined $no_issues_charge_guarantors ) {
893
    if ( defined $no_issues_charge_guarantors ) {
895
        my $guarantors_non_issues_charges = $patron->relationships_debt({ include_guarantors => 1, only_this_guarantor => 0, include_this_patron => 1 });
894
        if (   $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{overlimit}
896
895
            && !$inprocess
897
        if ( $guarantors_non_issues_charges > $no_issues_charge_guarantors && !$inprocess && !$allowfineoverride) {
896
            && !$allowfineoverride )
898
            $issuingimpossible{DEBT_GUARANTORS} = $guarantors_non_issues_charges;
897
        {
899
        } elsif ( $guarantors_non_issues_charges > $no_issues_charge_guarantors && !$inprocess && $allowfineoverride) {
898
            $issuingimpossible{DEBT_GUARANTORS} =
900
            $needsconfirmation{DEBT_GUARANTORS} = $guarantors_non_issues_charges;
899
                $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{charge};
901
        } elsif ( $allfinesneedoverride && $guarantors_non_issues_charges > 0 && $guarantors_non_issues_charges <= $no_issues_charge_guarantors && !$inprocess ) {
900
        } elsif ( $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{overlimit}
902
            $needsconfirmation{DEBT_GUARANTORS} = $guarantors_non_issues_charges;
901
            && !$inprocess
902
            && $allowfineoverride )
903
        {
904
            $needsconfirmation{DEBT_GUARANTORS} =
905
                $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{charge};
906
        } elsif ( $allfinesneedoverride
907
            && $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{charge} > 0
908
            && !$inprocess )
909
        {
910
            $needsconfirmation{DEBT_GUARANTORS} =
911
                $patron_borrowing_status->{NoIssuesChargeGuarantorsWithGuarantees}->{charge};
903
        }
912
        }
904
    }
913
    }
905
914
906
    if ( C4::Context->preference("IssuingInProcess") ) {
915
    if ( C4::Context->preference("IssuingInProcess") ) {
907
        if ( $non_issues_charges > $amountlimit && !$inprocess && !$allowfineoverride) {
916
        if ( $patron_borrowing_status->{noissuescharge}->{overlimit} && !$inprocess && !$allowfineoverride ) {
908
            $issuingimpossible{DEBT} = $non_issues_charges;
917
            $issuingimpossible{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge};
909
        } elsif ( $non_issues_charges > $amountlimit && !$inprocess && $allowfineoverride) {
918
        } elsif ( $patron_borrowing_status->{noissuescharge}->{overlimit} && !$inprocess && $allowfineoverride ) {
910
            $needsconfirmation{DEBT} = $non_issues_charges;
919
            $needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge};
911
        } elsif ( $allfinesneedoverride && $non_issues_charges > 0 && $non_issues_charges <= $amountlimit && !$inprocess ) {
920
        } elsif ( $allfinesneedoverride && $patron_borrowing_status->{noissuescharge}->{charge} > 0 && !$inprocess ) {
912
            $needsconfirmation{DEBT} = $non_issues_charges;
921
            $needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge};
913
        }
922
        }
914
    }
923
    } else {
915
    else {
924
        if ( $patron_borrowing_status->{noissuescharge}->{overlimit} && $allowfineoverride ) {
916
        if ( $non_issues_charges > $amountlimit && $allowfineoverride ) {
925
            $needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge};
917
            $needsconfirmation{DEBT} = $non_issues_charges;
926
        } elsif ( $patron_borrowing_status->{noissuescharge}->{overlimit} && !$allowfineoverride ) {
918
        } elsif ( $non_issues_charges > $amountlimit && !$allowfineoverride) {
927
            $issuingimpossible{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge};
919
            $issuingimpossible{DEBT} = $non_issues_charges;
928
        } elsif ( $patron_borrowing_status->{noissuescharge}->{charge} > 0 && $allfinesneedoverride ) {
920
        } elsif ( $non_issues_charges > 0 && $allfinesneedoverride ) {
929
            $needsconfirmation{DEBT} = $patron_borrowing_status->{noissuescharge}->{charge};
921
            $needsconfirmation{DEBT} = $non_issues_charges;
922
        }
930
        }
923
    }
931
    }
924
932
933
925
    if ($balance > 0 && $other_charges > 0) {
934
    if ($balance > 0 && $other_charges > 0) {
926
        $alerts{OTHER_CHARGES} = sprintf( "%.2f", $other_charges );
935
        $alerts{OTHER_CHARGES} = sprintf( "%.2f", $other_charges );
927
    }
936
    }
(-)a/C4/Members.pm (-19 / +12 lines)
Lines 135-147 sub patronflags { Link Here
135
    my $dbh=C4::Context->dbh;
135
    my $dbh=C4::Context->dbh;
136
    my $patron = Koha::Patrons->find( $patroninformation->{borrowernumber} );
136
    my $patron = Koha::Patrons->find( $patroninformation->{borrowernumber} );
137
    my $account = $patron->account;
137
    my $account = $patron->account;
138
    my $owing = $account->non_issues_charges;
138
    my $patron_charge_limits = $patron->is_patron_inside_charge_limits( { patron => $patron } );
139
    if ( $owing > 0 ) {
139
    if ( $patron_charge_limits->{noissuescharge}->{charge} > 0 ) {
140
        my %flaginfo;
140
        my %flaginfo;
141
        my $noissuescharge = C4::Context->preference("noissuescharge") || 5;
141
        my $noissuescharge = $patron_charge_limits->{noissuescharge}->{limit} || 5;
142
        $flaginfo{'message'} = sprintf 'Patron owes %.02f', $owing;
142
        $flaginfo{'message'} = sprintf 'Patron owes %.02f', $patron_charge_limits->{noissuescharge}->{charge};
143
        $flaginfo{'amount'}  = sprintf "%.02f", $owing;
143
        $flaginfo{'amount'}  = sprintf "%.02f", $patron_charge_limits->{noissuescharge}->{charge};
144
        if ( $owing > $noissuescharge && !C4::Context->preference("AllowFineOverride") ) {
144
        if ( $patron_charge_limits->{noissuescharge}->{overlimit} && !C4::Context->preference("AllowFineOverride") ) {
145
            $flaginfo{'noissues'} = 1;
145
            $flaginfo{'noissues'} = 1;
146
        }
146
        }
147
        $flags{'CHARGES'} = \%flaginfo;
147
        $flags{'CHARGES'} = \%flaginfo;
Lines 153-173 sub patronflags { Link Here
153
        $flags{'CREDITS'} = \%flaginfo;
153
        $flags{'CREDITS'} = \%flaginfo;
154
    }
154
    }
155
155
156
    # Check the debt of the guarntees of this patron
156
    # Check the debt of this patrons guarantees
157
    my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees");
157
    my $no_issues_charge_guarantees = $patron_charge_limits->{NoIssuesChargeGuarantees}->{limit};
158
    $no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees );
158
    $no_issues_charge_guarantees = undef unless looks_like_number($no_issues_charge_guarantees);
159
    if ( defined $no_issues_charge_guarantees ) {
159
    if ( defined $no_issues_charge_guarantees ) {
160
        my $p = Koha::Patrons->find( $patroninformation->{borrowernumber} );
160
        if ( $patron_charge_limits->{NoIssuesChargeGuarantees}->{overlimit} ) {
161
        my @guarantees = map { $_->guarantee } $p->guarantee_relationships->as_list;
162
        my $guarantees_non_issues_charges = 0;
163
        foreach my $g ( @guarantees ) {
164
            $guarantees_non_issues_charges += $g->account->non_issues_charges;
165
        }
166
167
        if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees ) {
168
            my %flaginfo;
161
            my %flaginfo;
169
            $flaginfo{'message'} = sprintf 'patron guarantees owe %.02f', $guarantees_non_issues_charges;
162
            $flaginfo{'message'} = sprintf 'patron guarantees owe %.02f', $patron_charge_limits->{NoIssuesChargeGuarantees}->{charge};
170
            $flaginfo{'amount'}  = $guarantees_non_issues_charges;
163
            $flaginfo{'amount'}  = $patron_charge_limits->{NoIssuesChargeGuarantees}->{charge};
171
            $flaginfo{'noissues'} = 1 unless C4::Context->preference("allowfineoverride");
164
            $flaginfo{'noissues'} = 1 unless C4::Context->preference("allowfineoverride");
172
            $flags{'CHARGES_GUARANTEES'} = \%flaginfo;
165
            $flags{'CHARGES_GUARANTEES'} = \%flaginfo;
173
        }
166
        }
(-)a/C4/SIP/ILS/Patron.pm (-13 / +10 lines)
Lines 99-122 sub new { Link Here
99
    $dexpiry and $dexpiry =~ s/-//g;    # YYYYMMDD
99
    $dexpiry and $dexpiry =~ s/-//g;    # YYYYMMDD
100
100
101
    # Get fines and add fines for guarantees (depends on preference NoIssuesChargeGuarantees)
101
    # Get fines and add fines for guarantees (depends on preference NoIssuesChargeGuarantees)
102
    my $fines_amount = ($patron->account->balance > 0) ? $patron->account->non_issues_charges : 0;
102
    my $patron_charge_limits = $patron->is_patron_inside_charge_limits( { patron => $patron } );
103
    my $fines_amount = $patron_charge_limits->{noissuescharge}->{charge};
103
    my $personal_fines_amount = $fines_amount;
104
    my $personal_fines_amount = $fines_amount;
104
    my $fee_limit = _fee_limit();
105
    my $fee_limit = $patron_charge_limits->{noissuescharge}->{limit} || 5;
105
    my $noissueschargeguarantorswithguarantees = C4::Context->preference('NoIssuesChargeGuarantorsWithGuarantees');
106
    my $noissueschargeguarantorswithguarantees = $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{limit};
107
    my $noissueschargeguarantees = $patron_charge_limits->{NoIssuesChargeGuarantees}->{limit};
106
    my $fines_msg = "";
108
    my $fines_msg = "";
107
    my $fine_blocked = 0;
109
    my $fine_blocked = 0;
108
    my $noissueschargeguarantees = C4::Context->preference('NoIssuesChargeGuarantees');
110
    if( $patron_charge_limits->{noissuescharge}->{overlimit} ){
109
    if( $fines_amount > $fee_limit ){
110
        $fine_blocked = 1;
111
        $fine_blocked = 1;
111
        $fines_msg .= " -- " . "Patron blocked by fines" if $fine_blocked;
112
        $fines_msg .= " -- " . "Patron blocked by fines" if $fine_blocked;
112
    } elsif ( $noissueschargeguarantorswithguarantees ) {
113
    } elsif ( $noissueschargeguarantorswithguarantees ) {
113
        $fines_amount += $patron->relationships_debt({ include_guarantors => 1, only_this_guarantor => 0, include_this_patron => 0 });
114
        $fines_amount = $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{charge}; 
114
        $fine_blocked ||= $fines_amount > $noissueschargeguarantorswithguarantees;
115
        $fine_blocked = $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{overlimit};
115
        $fines_msg .= " -- " . "Patron blocked by fines ($fines_amount) on related accounts" if $fine_blocked;
116
        $fines_msg .= " -- " . "Patron blocked by fines ($fines_amount) on related accounts" if $fine_blocked;
116
    } elsif ( $noissueschargeguarantees ) {
117
    } elsif ( $noissueschargeguarantees ) {
117
        if( $patron->guarantee_relationships->count ){
118
        if( $patron->guarantee_relationships->count ){
118
            $fines_amount += $patron->relationships_debt({ include_guarantors => 0, only_this_guarantor => 1, include_this_patron => 0 });
119
            $fines_amount += $patron_charge_limits->{NoIssuesChargeGuarantees}->{charge}; 
119
            $fine_blocked ||= $fines_amount > $noissueschargeguarantees;
120
            $fine_blocked = $patron_charge_limits->{NoIssuesChargeGuarantees}->{overlimit};
120
            $fines_msg .= " -- " . "Patron blocked by fines ($fines_amount) on guaranteed accounts" if $fine_blocked;
121
            $fines_msg .= " -- " . "Patron blocked by fines ($fines_amount) on guaranteed accounts" if $fine_blocked;
121
        }
122
        }
122
    }
123
    }
Lines 499-508 sub inet_privileges { Link Here
499
    return $self->{inet} ? 'Y' : 'N';
500
    return $self->{inet} ? 'Y' : 'N';
500
}
501
}
501
502
502
sub _fee_limit {
503
    return C4::Context->preference('noissuescharge') || 5;
504
}
505
506
sub excessive_fees {
503
sub excessive_fees {
507
    my $self = shift;
504
    my $self = shift;
508
    return ($self->fee_amount and $self->fee_amount > $self->fee_limit);
505
    return ($self->fee_amount and $self->fee_amount > $self->fee_limit);
(-)a/circ/circulation.pl (-19 / +13 lines)
Lines 567-579 if ( $patron ) { Link Here
567
        $template->param( is_anonymous => 1 );
567
        $template->param( is_anonymous => 1 );
568
        $noissues = 1;
568
        $noissues = 1;
569
    }
569
    }
570
    my $account = $patron->account;
570
    my $patron_charge_limits = $patron->is_patron_inside_charge_limits( { patron => $patron } );
571
    if( ( my $owing = $account->non_issues_charges ) > 0 ) {
571
    if( $patron_charge_limits->{noissuescharge}->{charge} > 0 ) {
572
        my $noissuescharge = C4::Context->preference("noissuescharge") || 5; # FIXME If noissuescharge == 0 then 5, why??
572
        my $noissuescharge = $patron_charge_limits->{noissuescharge}->{limit} || 5; # FIXME If noissuescharge == 0 then 5, why??
573
        $noissues ||= ( not C4::Context->preference("AllowFineOverride") and ( $owing > $noissuescharge ) );
573
        $noissues ||= ( not C4::Context->preference("AllowFineOverride") and $patron_charge_limits->{noissuescharge}->{overlimit} );
574
        $template->param(
574
        $template->param(
575
            charges => 1,
575
            charges => 1,
576
            chargesamount => $owing,
576
            chargesamount => $patron_charge_limits->{noissuescharge}->{charge},
577
        )
577
        )
578
    } elsif ( $balance < 0 ) {
578
    } elsif ( $balance < 0 ) {
579
        $template->param(
579
        $template->param(
Lines 583-612 if ( $patron ) { Link Here
583
    }
583
    }
584
584
585
    # Check the debt of this patrons guarantors *and* the guarantees of those guarantors
585
    # Check the debt of this patrons guarantors *and* the guarantees of those guarantors
586
    my $no_issues_charge_guarantors = C4::Context->preference("NoIssuesChargeGuarantorsWithGuarantees");
586
    my $no_issues_charge_guarantors = $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{limit};
587
    if ( $no_issues_charge_guarantors ) {
587
    if ($no_issues_charge_guarantors) {
588
        my $guarantors_non_issues_charges = $patron->relationships_debt({ include_guarantors => 1, only_this_guarantor => 0, include_this_patron => 1 });
588
        if ( $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{overlimit} ) {
589
590
        if ( $guarantors_non_issues_charges > $no_issues_charge_guarantors ) {
591
            $template->param(
589
            $template->param(
592
                charges_guarantors_guarantees => $guarantors_non_issues_charges
590
                noissues                      => 1,
591
                charges_guarantors_guarantees => $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{charge}
593
            );
592
            );
594
            $noissues = 1 unless C4::Context->preference("allowfineoverride");
593
            $noissues = 1 unless C4::Context->preference("allowfineoverride");
595
        }
594
        }
596
    }
595
    }
597
596
598
    my $no_issues_charge_guarantees = C4::Context->preference("NoIssuesChargeGuarantees");
597
    my $no_issues_charge_guarantees = $patron_charge_limits->{NoIssuesChargeGuarantees}->{limit};
599
    $no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees );
598
    $no_issues_charge_guarantees = undef unless looks_like_number( $no_issues_charge_guarantees );
600
    if ( defined $no_issues_charge_guarantees ) {
599
    if ( defined $no_issues_charge_guarantees ) {
601
        my $guarantees_non_issues_charges = 0;
600
        if ( $patron_charge_limits->{NoIssuesChargeGuarantees}->{overlimit} ) {
602
        my $guarantees = $patron->guarantee_relationships->guarantees;
603
        while ( my $g = $guarantees->next ) {
604
            $guarantees_non_issues_charges += $g->account->non_issues_charges;
605
        }
606
        if ( $guarantees_non_issues_charges > $no_issues_charge_guarantees ) {
607
            $template->param(
601
            $template->param(
608
                charges_guarantees    => 1,
602
                charges_guarantees    => 1,
609
                chargesamount_guarantees => $guarantees_non_issues_charges,
603
                chargesamount_guarantees => $patron_charge_limits->{NoIssuesChargeGuarantees}->{charge},
610
            );
604
            );
611
            $noissues = 1 unless C4::Context->preference("allowfineoverride");
605
            $noissues = 1 unless C4::Context->preference("allowfineoverride");
612
        }
606
        }
(-)a/members/moremember.pl (-13 / +9 lines)
Lines 242-270 my $issues = $patron->checkouts; Link Here
242
my $balance = 0;
242
my $balance = 0;
243
$balance = $patron->account->balance;
243
$balance = $patron->account->balance;
244
244
245
my $account = $patron->account;
245
my $patron_charge_limits = $patron->is_patron_inside_charge_limits( { patron => $patron } );
246
if( ( my $owing = $account->non_issues_charges ) > 0 ) {
246
if ( $patron_charge_limits->{noissuescharge}->{charge} > 0 ) {
247
    my $noissuescharge = C4::Context->preference("noissuescharge") || 5; # FIXME If noissuescharge == 0 then 5, why??
248
    $template->param(
247
    $template->param(
249
        charges => 1,
248
        charges       => 1,
250
        chargesamount => $owing,
249
        chargesamount => $patron_charge_limits->{noissuescharge}->{charge},
251
    )
250
    );
252
} elsif ( $balance < 0 ) {
251
} elsif ( $balance < 0 ) {
253
    $template->param(
252
    $template->param(
254
        credits => 1,
253
        credits       => 1,
255
        creditsamount => -$balance,
254
        creditsamount => -$balance,
256
    );
255
    );
257
}
256
}
258
257
259
# Check the debt of this patrons guarantors *and* the guarantees of those guarantors
258
# Check the debt of this patrons guarantors *and* the guarantees of those guarantors
260
my $no_issues_charge_guarantors = C4::Context->preference("NoIssuesChargeGuarantorsWithGuarantees");
259
my $no_issues_charge_guarantors = $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{limit};
261
if ( $no_issues_charge_guarantors ) {
260
if ( $no_issues_charge_guarantors ) {
262
    my $guarantors_non_issues_charges = $patron->relationships_debt({ include_guarantors => 1, only_this_guarantor => 0, include_this_patron => 1 });
261
    if ( $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{overlimit} ) {
263
264
    if ( $guarantors_non_issues_charges > $no_issues_charge_guarantors ) {
265
        $template->param(
262
        $template->param(
266
            noissues                      => 1,
263
            noissues                      => 1,
267
            charges_guarantors_guarantees => $guarantors_non_issues_charges
264
            charges_guarantors_guarantees => $patron_charge_limits->{NoIssuesChargeGuarantorsWithGuarantees}->{charge}
268
        );
265
        );
269
    }
266
    }
270
}
267
}
271
- 

Return to bug 28924