take advantage of the new billable_transaction_summary table. also, force caller...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 10 Feb 2009 21:24:39 +0000 (21:24 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 10 Feb 2009 21:24:39 +0000 (21:24 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12143 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Actor.pm
Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm

index 010f9c7..39c3fda 100644 (file)
@@ -2065,8 +2065,7 @@ sub user_transaction_history {
 
        $e->rollback;
 
-       #my @mbts = _make_mbts( @xacts );
-       my @mbts = $U->make_mbts( @xacts );
+       my @mbts = $U->make_mbts( $e, @xacts );
 
        if(defined($type)) {
                @mbts = grep { $_->xact_type eq $type } @mbts;
index 1a50605..18db01d 100644 (file)
@@ -1157,20 +1157,13 @@ sub patron_total_items_out {
 sub fetch_mbts {
        my $self = shift;
        my $id  = shift;
-       my $editor = shift || OpenILS::Utils::CStoreEditor->new;
-
-       $id = $id->id if (ref($id));
-
-       my $xact = $editor->retrieve_money_billable_transaction(
-               [
-                       $id, {  
-                               flesh => 1, 
-                               flesh_fields => { mbt => [ qw/billings payments grocery circulation/ ] } 
-                       }
-               ]
-       ) or return (undef, $editor->event);
+       my $e = shift || OpenILS::Utils::CStoreEditor->new;
+       $id = $id->id if ref($id);
+    
+    my $xact = $e->retrieve_money_billable_transaction_summary($id)
+           or return (undef, $e->event);
 
-       return $self->make_mbts($xact);
+    return ($xact);
 }
 
 
@@ -1180,59 +1173,9 @@ sub fetch_mbts {
 #--------------------------------------------------------------------
 sub make_mbts {
        my $self = shift;
+    my $e = shift;
        my @xacts = @_;
-
-       my @mbts;
-       for my $x (@xacts) {
-
-               my $s = new Fieldmapper::money::billable_transaction_summary;
-
-               $s->id( $x->id );
-               $s->usr( $x->usr );
-               $s->xact_start( $x->xact_start );
-               $s->xact_finish( $x->xact_finish );
-               
-               my $to = 0;
-               my $lb = undef;
-               for my $b (@{ $x->billings }) {
-                       next if ($self->is_true($b->voided));
-                       $to += ($b->amount * 100);
-                       $lb ||= $b->billing_ts;
-                       if ($b->billing_ts ge $lb) {
-                               $lb = $b->billing_ts;
-                               $s->last_billing_note($b->note);
-                               $s->last_billing_ts($b->billing_ts);
-                               $s->last_billing_type($b->billing_type);
-                       }
-               }
-
-               $s->total_owed( sprintf('%0.2f', $to / 100 ) );
-               
-               my $tp = 0;
-               my $lp = undef;
-               for my $p (@{ $x->payments }) {
-                       next if ($self->is_true($p->voided));
-                       $tp += ($p->amount * 100);
-                       $lp ||= $p->payment_ts;
-                       if ($p->payment_ts ge $lp) {
-                               $lp = $p->payment_ts;
-                               $s->last_payment_note($p->note);
-                               $s->last_payment_ts($p->payment_ts);
-                               $s->last_payment_type($p->payment_type);
-                       }
-               }
-
-               $s->total_paid( sprintf('%0.2f', $tp / 100 ) );
-               $s->balance_owed( sprintf('%0.2f', ($to - $tp) / 100) );
-               $s->xact_type('grocery') if ($x->grocery);
-               $s->xact_type('circulation') if ($x->circulation);
-
-               $logger->debug("Created mbts with balance_owed = ". $s->balance_owed);
-               
-               push @mbts, $s;
-       }
-               
-       return @mbts;
+    return @{$e->search_money_billable_transaction_summary({id => [ map { $_->id } @xacts ]})};
 }