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

(-)a/C4/Overdues.pm (-16 / +19 lines)
Lines 515-539 sub UpdateFine { Link Here
515
    my $data;
515
    my $data;
516
    my $total_amount_other = 0.00;
516
    my $total_amount_other = 0.00;
517
    my $due_qr = qr/$due/;
517
    my $due_qr = qr/$due/;
518
    # Cycle through the fines and
519
    # - find line that relates to the requested $itemnum
520
    # - accumulate fines for other items
521
    # so we can update $itemnum fine taking in account fine caps
518
    while (my $rec = $sth->fetchrow_hashref) {
522
    while (my $rec = $sth->fetchrow_hashref) {
519
      if ($rec->{itemnumber} == $itemnum && $rec->{description} =~ /$due_qr/) {
523
        if ($rec->{itemnumber} == $itemnum && $rec->{description} =~ /$due_qr/) {
520
        if ($data) {
524
            if ($data) {
521
          warn "Not a unique accountlines record for item $itemnum borrower $borrowernumber";
525
                warn "Not a unique accountlines record for item $itemnum borrower $borrowernumber";
522
        } else {
526
            } else {
523
          $data = $rec;
527
                $data = $rec;
524
          next;
528
                next;
529
            }
525
        }
530
        }
526
      }
531
        $total_amount_other += $rec->{'amount'};
527
      $total_amount_other += $rec->{'amount'};
528
    }
532
    }
529
    if (my $maxfine = C4::Context->preference('MaxFine')) {
533
    if (my $maxfine = C4::Context->preference('MaxFine')) {
530
      if ($total_amount_other + $amount > $maxfine) {
534
        if ($total_amount_other + $amount > $maxfine) {
531
        my $new_amount = $maxfine - $total_amount_other;
535
            my $new_amount = $maxfine - $total_amount_other;
532
        warn "Reducing fine for item $itemnum borrower $borrowernumber from $amount to $new_amount - MaxFine reached";
536
            warn "Reducing fine for item $itemnum borrower $borrowernumber from $amount to $new_amount - MaxFine reached";
533
        return if $new_amount <= 0.00;
537
            return if $new_amount <= 0.00;
534
        
538
535
        $amount = $new_amount;
539
            $amount = $new_amount;
536
      }
540
        }
537
    }
541
    }
538
542
539
    if ( $data ) {
543
    if ( $data ) {
540
- 

Return to bug 7420