From fb4040ec53989b0d647007536492cfc5dbef66b0 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 10 Feb 2009 21:24:39 +0000 Subject: [PATCH] take advantage of the new billable_transaction_summary table. also, force caller to make_mbts to pass an editor in git-svn-id: svn://svn.open-ils.org/ILS/trunk@12143 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Actor.pm | 3 +- .../src/perlmods/OpenILS/Application/AppUtils.pm | 73 +++------------------- 2 files changed, 9 insertions(+), 67 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index 010f9c7a94..39c3fdac64 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -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; diff --git a/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm b/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm index 1a506054da..18db01d615 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm @@ -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 ]})}; } -- 2.11.0