my $bill_payment_map = $CC->bill_payment_map_for_xact(undef, $c);
# Pull out those entries for overdue bills in reverse date order.
- my @fine_map = sort { $b->bill->billing_ts() <=> $a->bill->billing_ts() }
- grep { $_->bill->btype() == 1 && $_->bill->billing_ts() > $c->$due_date_method }
+ my @fine_map = sort { $b->{bill}->billing_ts() <=> $a->{bill}->billing_ts() }
+ grep { $_->{bill}->btype() == 1 && $_->{bill}->billing_ts() > $c->$due_date_method }
@{$bill_payment_map};
my $f_idx = 0;
my $fine;
if (@fine_map) {
if ($overbill) {
- while ($fine_map[$f_idx] and $fine_map[$f_idx]->void_amount() >= $fine_map[$f_idx]->bill_amount()) {
+ while ($fine_map[$f_idx] and $fine_map[$f_idx]->{void_amount} >= $fine_map[$f_idx]->{bill_amount}) {
$f_idx++;
}
}
# Set the $fine to be used for $last_fine below.
- $fine = $fine_map[$f_idx]->bill() if ($fine_map[$f_idx]);
+ $fine = $fine_map[$f_idx]->{bill} if ($fine_map[$f_idx]);
# Calculate the current fine total using the modified bill amounts from the bill payment map.
- map { $current_fine_total += int($_->bill->amount() * 100) }
- grep { $_->bill_amount() < $_->void_amount() } @fine_map;
+ map { $current_fine_total += int($_->{bill}->amount() * 100) }
+ grep { $_->{bill_amount} < $_->{void_amount} } @fine_map;
}
my $last_fine;
my $to = 0;
my $lb = undef;
for my $b ($x->billings) {
- next if ($b->voided);
#$log->debug( "billing is ".$b->amount, DEBUG );
$to += ($b->amount * 100);
$lb ||= $b->billing_ts;
and c.id is null
and x.circ_lib in (XX)
and b.billing_ts < current_timestamp - ? * '1 day'::interval
- and not b.voided
and set.id IS NULL
group by 1,2
and c.id is null
and x.billing_location in (XX)
and b.billing_ts < current_timestamp - ? * '1 day'::interval
- and not b.voided
and set.id IS NULL
group by 1,2
and c.id is null
and x.pickup_lib in (XX)
and b.billing_ts < current_timestamp - ? * '1 day'::interval
- and not b.voided
and set.id IS NULL
group by 1,2
) full_list