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

(-)a/C4/Overdues.pm (+21 lines)
Lines 48-53 BEGIN { Link Here
48
        &UpdateFine
48
        &UpdateFine
49
        &GetFine
49
        &GetFine
50
        &get_chargeable_units
50
        &get_chargeable_units
51
        &GetTotalFines
51
        &CheckItemNotify
52
        &CheckItemNotify
52
        &GetOverduesForBranch
53
        &GetOverduesForBranch
53
        &RemoveNotifyLine
54
        &RemoveNotifyLine
Lines 667-672 sub GetFine { Link Here
667
    return 0;
668
    return 0;
668
}
669
}
669
670
671
=head2 GetTotalFines
672
673
    my $total_fines_owed = GetTotalFines( $borrowernumber );
674
675
    Returns the total amount owed by the given borrower.
676
677
=cut
678
679
sub GetTotalFines {
680
    my ( $borrowernumber ) = @_;
681
    my $dbh = C4::Context->dbh();
682
    my $query = "SELECT SUM( amountoutstanding ) AS total FROM accountlines WHERE borrowernumber = ?";
683
    my $sth = $dbh->prepare( $query );
684
    $sth->execute( $borrowernumber );
685
    my $row = $sth->fetchrow_hashref();
686
    my $total = $row->{'total'};
687
    $total = $total || 0;
688
    return $total;
689
}
690
670
=head2 NumberNotifyId
691
=head2 NumberNotifyId
671
692
672
    (@notify) = &NumberNotifyId($borrowernumber);
693
    (@notify) = &NumberNotifyId($borrowernumber);
(-)a/C4/SIP/ILS/Patron.pm (-2 / +2 lines)
Lines 81-88 sub new { Link Here
81
        address         => $adr,
81
        address         => $adr,
82
        home_phone      => $kp->{phone},
82
        home_phone      => $kp->{phone},
83
        email_addr      => $kp->{email},
83
        email_addr      => $kp->{email},
84
        charge_ok       => ( !$debarred && !$expired && !$fine_blocked),
84
        charge_ok       => ( !$debarred && !$expired && !$fine_blocked && ( $fines_amount < C4::Context->preference('noissuescharge') ) ),
85
        renew_ok        => ( !$debarred && !$expired && !$fine_blocked),
85
        renew_ok        => ( !$debarred && !$expired && !$fine_blocked && ( $fines_amount < C4::Context->preference('OPACFineNoRenewals') ) ),
86
        recall_ok       => ( !$debarred && !$expired && !$fine_blocked),
86
        recall_ok       => ( !$debarred && !$expired && !$fine_blocked),
87
        hold_ok         => ( !$debarred && !$expired && !$fine_blocked),
87
        hold_ok         => ( !$debarred && !$expired && !$fine_blocked),
88
        card_lost       => ( $kp->{lost} || $kp->{gonenoaddress} || $flags->{LOST} ),
88
        card_lost       => ( $kp->{lost} || $kp->{gonenoaddress} || $flags->{LOST} ),
(-)a/C4/SIP/ILS/Transaction/Renew.pm (-1 / +7 lines)
Lines 33-38 sub do_renew_for { Link Here
33
    my $self = shift;
33
    my $self = shift;
34
    my $borrower = shift;
34
    my $borrower = shift;
35
    my ($renewokay,$renewerror) = CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber});
35
    my ($renewokay,$renewerror) = CanBookBeRenewed($borrower->{borrowernumber},$self->{item}->{itemnumber});
36
36
    if ($renewokay) { # ok so far check charges
37
    if ($renewokay) { # ok so far check charges
37
        my ($fee, undef) = GetIssuingCharges($self->{item}->{itemnumber}, $self->{patron}->{borrowernumber});
38
        my ($fee, undef) = GetIssuingCharges($self->{item}->{itemnumber}, $self->{patron}->{borrowernumber});
38
        if ($fee > 0) {
39
        if ($fee > 0) {
Lines 44-49 sub do_renew_for { Link Here
44
        }
45
        }
45
46
46
    }
47
    }
48
49
    unless ( C4::Overdues::GetTotalFines($borrower->{borrowernumber}) < C4::Context->preference('OPACFineNoRenewals') ) {
50
        $renewokay = 0;
51
        $renewerror = 'too_many_fines'
52
    }
53
47
    if ($renewokay){
54
    if ($renewokay){
48
        $self->{due} = undef;
55
        $self->{due} = undef;
49
        my $issue = AddIssue( $borrower, $self->{item}->id, undef, 0 );
56
        my $issue = AddIssue( $borrower, $self->{item}->id, undef, 0 );
50
- 

Return to bug 7560