LP 1198465: Fix Publisher/money.pm for billing changes.
authorJason Stephenson <jason@sigio.com>
Wed, 8 Jan 2014 02:11:22 +0000 (21:11 -0500)
committerJason Stephenson <jason@sigio.com>
Thu, 20 Feb 2014 23:07:03 +0000 (18:07 -0500)
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/money.pm

index b7a6f6d..4896e32 100644 (file)
@@ -1130,8 +1130,8 @@ sub generate_fines {
             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;
@@ -1139,15 +1139,15 @@ sub generate_fines {
             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;
index 6b314bd..d8292ed 100644 (file)
@@ -18,7 +18,6 @@ sub _make_mbts {
                 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;
@@ -143,7 +142,6 @@ select
                 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
 
@@ -162,7 +160,6 @@ select
                 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
 
@@ -181,7 +178,6 @@ select
                 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