[open-ils-commits] r14800 - tags/rel_1_6_0_0/Open-ILS/src/perlmods/OpenILS/Application (erickson)

svn at svn.open-ils.org svn at svn.open-ils.org
Thu Nov 5 17:48:39 EST 2009


Author: erickson
Date: 2009-11-05 17:48:33 -0500 (Thu, 05 Nov 2009)
New Revision: 14800

Modified:
   tags/rel_1_6_0_0/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm
Log:
use new mbts mat view directly instead of jumping through the billable xact.  remove explicit xact management and rely on authoritative

Modified: tags/rel_1_6_0_0/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm
===================================================================
--- tags/rel_1_6_0_0/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm	2009-11-05 22:47:55 UTC (rev 14799)
+++ tags/rel_1_6_0_0/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm	2009-11-05 22:48:33 UTC (rev 14800)
@@ -1533,6 +1533,7 @@
 		->method_lookup('open-ils.actor.user.transactions.history.still_open')
 		->run($login_session => $user_id => $type);
 
+
 	if($api =~ /have_charge/o) {
 
 		$trans = [ grep { int($_->total_owed * 100) > 0 } @$trans ];
@@ -1983,7 +1984,7 @@
 	my( $self, $conn, $auth, $userid, $type ) = @_;
 
 	# run inside of a transaction to prevent replication delays
-	my $e = new_editor(xact=>1, authtoken=>$auth);
+	my $e = new_editor(authtoken=>$auth);
 	return $e->die_event unless $e->checkauth;
 
 	if( $e->requestor->id ne $userid ) {
@@ -1994,37 +1995,34 @@
 	my $api = $self->api_name;
 	my @xact_finish  = (xact_finish => undef ) if ($api =~ /history.still_open$/);
 
-	my @xacts = @{ $e->search_money_billable_transaction(
-		[	{ usr => $userid, @xact_finish },
-			{ flesh => 1,
-			  flesh_fields => { mbt => [ qw/billings payments grocery circulation/ ] },
-			  order_by => { mbt => 'xact_start DESC' },
-			}
-		],
-      {substream => 1}
-	) };
+    my $mbts = $e->search_money_billable_transaction_summary(
+        [ 
+            { usr => $userid, @xact_finish },
+            { order_by => { mbt => 'xact_start DESC' } }
+        ]
+    );
 
-	$e->rollback;
-
-	my @mbts = $U->make_mbts( $e, @xacts );
-
 	if(defined($type)) {
-		@mbts = grep { $_->xact_type eq $type } @mbts;
+		@$mbts = grep { $_->xact_type eq $type } @$mbts;
 	}
 
 	if($api =~ /have_balance/o) {
-		@mbts = grep { int($_->balance_owed * 100) != 0 } @mbts;
+		@$mbts = grep { int($_->balance_owed * 100) != 0 } @$mbts;
 	}
 
 	if($api =~ /have_charge/o) {
-		@mbts = grep { defined($_->last_billing_ts) } @mbts;
+		@$mbts = grep { defined($_->last_billing_ts) } @$mbts;
 	}
 
 	if($api =~ /have_bill/o) {
-		@mbts = grep { int($_->total_owed * 100) != 0 } @mbts;
+		@$mbts = grep { int($_->total_owed * 100) != 0 } @$mbts;
 	}
 
-	return [@mbts];
+    if ($api =~ /\.ids/) {
+    	return [map {$_->id} @$mbts];
+    } else {
+        return $mbts;
+    }
 }
 
 



More information about the open-ils-commits mailing list