From: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Date: Wed, 1 Aug 2012 18:51:39 +0000 (-0400)
Subject: Whitespace fixes in Collections.pm
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=cff5fb73738b1ef632c9de88a4156f5b291c4d71;p=evergreen%2Fmasslnc.git

Whitespace fixes in Collections.pm

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
---

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Collections.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Collections.pm
index 3979d208ce..f1d6e36fda 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Collections.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Collections.pm
@@ -24,85 +24,85 @@ use File::Path;
 sub initialize { return 1; }
 
 __PACKAGE__->register_method(
-	method => 'user_from_bc',
-	api_name => 'open-ils.collections.user_id_from_barcode',
+    method => 'user_from_bc',
+    api_name => 'open-ils.collections.user_id_from_barcode',
 );
 
 sub user_from_bc {
-	my( $self, $conn, $auth, $bc ) = @_;
-	my $e = new_editor(authtoken=>$auth);
-	return $e->event unless $e->checkauth;
-	return $e->event unless $e->allowed('VIEW_USER'); 
-	my $card = $e->search_actor_card({barcode=>$bc})->[0]
-		or return $e->event;
-	my $user = $e->retrieve_actor_user($card->usr)
-		or return $e->event;
-	return $user->id;	
+    my( $self, $conn, $auth, $bc ) = @_;
+    my $e = new_editor(authtoken=>$auth);
+    return $e->event unless $e->checkauth;
+    return $e->event unless $e->allowed('VIEW_USER');
+    my $card = $e->search_actor_card({barcode=>$bc})->[0]
+        or return $e->event;
+    my $user = $e->retrieve_actor_user($card->usr)
+        or return $e->event;
+    return $user->id;
 }
 
 
 __PACKAGE__->register_method(
-	method    => 'users_of_interest',
-	api_name  => 'open-ils.collections.users_of_interest.retrieve',
-	api_level => 1,
-	argc      => 4,
+    method    => 'users_of_interest',
+    api_name  => 'open-ils.collections.users_of_interest.retrieve',
+    api_level => 1,
+    argc      => 4,
     stream    => 1,
-	signature => { 
-		desc     => q/
-			Returns an array of user information objects that the system 
-			based on the search criteria provided.  If the total fines
-			a user owes reaches or exceeds "fine_level" on or befre "age"
-			and the fines were created at "location", the user will be 
-			included in the return set/,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'age',
-				desc => q/Number of days back to check/,
-				type => q/number/,
-			},
-
-			{	name => 'fine_level',
-				desc => q/The fine threshold at which users will be included in the search results /,
-				type => q/number/,
-			},
-			{	name => 'location',
-				desc => q/The short-name of the orginization unit (library) at which the fines were created.  
-							If a selected location has 'child' locations (e.g. a library region), the
-							child locations will be included in the search/,
-				type => q/string/,
-			},
-		],
-
-	  	'return' => { 
-			desc		=> q/An array of user information objects.  
-						usr : Array of user information objects containing id, dob, profile, and groups
-						threshold_amount : The total amount the patron owes that is at least as old
-							as the fine "age" and whose transaction was created at the searched location
-						last_pertinent_billing : The time of the last billing that relates to this query
-						/,
-			type		=> 'array',
-			example	=> {
-				usr	=> {
-					id			=> 'id',
-					dob		=> '1970-01-01',
-					profile	=> 'Patron',
-					groups	=> [ 'Patron', 'Staff' ],
-				},
-				threshold_amount => 99,
-			}
-		}
-	}
+    signature => {
+        desc     => q/
+            Returns an array of user information objects that the system
+            based on the search criteria provided.  If the total fines
+            a user owes reaches or exceeds "fine_level" on or befre "age"
+            and the fines were created at "location", the user will be
+            included in the return set/,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'age',
+                desc => q/Number of days back to check/,
+                type => q/number/,
+            },
+
+            {    name => 'fine_level',
+                desc => q/The fine threshold at which users will be included in the search results /,
+                type => q/number/,
+            },
+            {    name => 'location',
+                desc => q/The short-name of the orginization unit (library) at which the fines were created.
+                            If a selected location has 'child' locations (e.g. a library region), the
+                            child locations will be included in the search/,
+                type => q/string/,
+            },
+        ],
+
+          'return' => {
+            desc        => q/An array of user information objects.
+                        usr : Array of user information objects containing id, dob, profile, and groups
+                        threshold_amount : The total amount the patron owes that is at least as old
+                            as the fine "age" and whose transaction was created at the searched location
+                        last_pertinent_billing : The time of the last billing that relates to this query
+                        /,
+            type        => 'array',
+            example    => {
+                usr    => {
+                    id            => 'id',
+                    dob        => '1970-01-01',
+                    profile    => 'Patron',
+                    groups    => [ 'Patron', 'Staff' ],
+                },
+                threshold_amount => 99,
+            }
+        }
+    }
 );
 
 
 sub users_of_interest {
     my( $self, $conn, $auth, $age, $fine_level, $location ) = @_;
 
-    return OpenILS::Event->new('BAD_PARAMS') 
+    return OpenILS::Event->new('BAD_PARAMS')
         unless ($auth and $age and $location);
 
     my $e = new_editor(authtoken => $auth);
@@ -112,7 +112,7 @@ sub users_of_interest {
         or return $e->event; $org = $org->[0];
 
     # they need global perms to view users so no org is provided
-    return $e->event unless $e->allowed('VIEW_USER'); 
+    return $e->event unless $e->allowed('VIEW_USER');
 
     my $data = [];
 
@@ -120,7 +120,7 @@ sub users_of_interest {
 
     my $start = time;
     my $req = $ses->request(
-        'open-ils.storage.money.collections.users_of_interest', 
+        'open-ils.storage.money.collections.users_of_interest',
         $age, $fine_level, $location);
 
     # let the client know we're still here
@@ -132,57 +132,57 @@ sub users_of_interest {
 
 
 __PACKAGE__->register_method(
-	method    => 'users_of_interest_warning_penalty',
-	api_name  => 'open-ils.collections.users_of_interest.warning_penalty.retrieve',
-	api_level => 1,
-	argc      => 4,
+    method    => 'users_of_interest_warning_penalty',
+    api_name  => 'open-ils.collections.users_of_interest.warning_penalty.retrieve',
+    api_level => 1,
+    argc      => 4,
     stream    => 1,
-	signature => { 
-		desc     => q/
-			Returns an array of user information objects for users that have the
-            PATRON_EXCEEDS_COLLECTIONS_WARNING penalty applied, 
-			based on the search criteria provided./,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' 
-            }, {	
+    signature => {
+        desc     => q/
+            Returns an array of user information objects for users that have the
+            PATRON_EXCEEDS_COLLECTIONS_WARNING penalty applied,
+            based on the search criteria provided./,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string'
+            }, {
                 name => 'location',
-				desc => q/The short-name of the orginization unit (library) at which the penalty is applied.
-							If a selected location has 'child' locations (e.g. a library region), the
-							child locations will be included in the search/,
-				type => q/string/,
-			}, {	
+                desc => q/The short-name of the orginization unit (library) at which the penalty is applied.
+                            If a selected location has 'child' locations (e.g. a library region), the
+                            child locations will be included in the search/,
+                type => q/string/,
+            }, {
                 name => 'min_age',
-				desc => q/Optional.  Minimum age of the penalty application/,
-				type => q/interval, e.g "30 days"/,
-			}, {	
+                desc => q/Optional.  Minimum age of the penalty application/,
+                type => q/interval, e.g "30 days"/,
+            }, {
                 name => 'max_age',
-				desc => q/Optional.  Maximum age of the penalty application/,
-				type => q/interval, e.g "90 days"/,
-			}
-		],
-
-	  	'return' => { 
-			desc		=> q/An array of user information objects.  
-						usr : Array of user information objects containing id, dob, profile, and groups
-						threshold_amount : The total amount the patron owes that is at least as old
-							as the fine "age" and whose transaction was created at the searched location
-						last_pertinent_billing : The time of the last billing that relates to this query
-						/,
-			type		=> 'array',
-			example	=> {
-				usr	=> {
-					id			=> 'id',
-					dob		=> '1970-01-01',
-					profile	=> 'Patron',
-					groups	=> [ 'Patron', 'Staff' ],
-				},
-				threshold_amount => 99, # TODO: still needed?
-			}
-		}
-	}
+                desc => q/Optional.  Maximum age of the penalty application/,
+                type => q/interval, e.g "90 days"/,
+            }
+        ],
+
+          'return' => {
+            desc        => q/An array of user information objects.
+                        usr : Array of user information objects containing id, dob, profile, and groups
+                        threshold_amount : The total amount the patron owes that is at least as old
+                            as the fine "age" and whose transaction was created at the searched location
+                        last_pertinent_billing : The time of the last billing that relates to this query
+                        /,
+            type        => 'array',
+            example    => {
+                usr    => {
+                    id            => 'id',
+                    dob        => '1970-01-01',
+                    profile    => 'Patron',
+                    groups    => [ 'Patron', 'Staff' ],
+                },
+                threshold_amount => 99, # TODO: still needed?
+            }
+        }
+    }
 );
 
 
@@ -199,16 +199,16 @@ sub users_of_interest_warning_penalty {
         or return $e->event; $org = $org->[0];
 
     # they need global perms to view users so no org is provided
-    return $e->event unless $e->allowed('VIEW_USER'); 
+    return $e->event unless $e->allowed('VIEW_USER');
 
     my $org_ids = $e->json_query({from => ['actor.org_unit_full_path', $org->id]});
 
     my $ses = OpenSRF::AppSession->create('open-ils.cstore');
 
-    # max age == oldest 
-    my $max_set_date = DateTime->now->subtract(seconds => 
+    # max age == oldest
+    my $max_set_date = DateTime->now->subtract(seconds =>
         interval_to_seconds($max_age))->strftime( '%F %T%z' ) if $max_age;
-    my $min_set_date = DateTime->now->subtract(seconds => 
+    my $min_set_date = DateTime->now->subtract(seconds =>
         interval_to_seconds($min_age))->strftime( '%F %T%z' ) if $min_age;
 
     my $start = time;
@@ -235,7 +235,7 @@ sub users_of_interest_warning_penalty {
                     {stop_date => {'>' => 'now'}}
                 ]
             },
-            # We are only interested in users that do not have the 
+            # We are only interested in users that do not have the
             # circ.collections.exempt setting applied
             '+aus' => {value => undef}
         }
@@ -274,22 +274,22 @@ sub process_users_of_interest_results {
 
         my $u = $e->retrieve_actor_user(
             [
-	            $hash->{usr},
-	            {
-		            flesh				=> 1,
-		            flesh_fields	=> {au => ["groups","profile", "card"]},
-	            }
+                $hash->{usr},
+                {
+                    flesh                => 1,
+                    flesh_fields    => {au => ["groups","profile", "card"]},
+                }
             ]
         ) or return $e->event;
 
         $hash->{usr} = {
-            id			=> $u->id,
-            dob		=> $u->dob,
-            profile	=> $u->profile->name,
-            barcode	=> $u->card->barcode,
-            groups	=> [ map { $_->name } @{$u->groups} ],
+            id            => $u->id,
+            dob        => $u->dob,
+            profile    => $u->profile->name,
+            barcode    => $u->card->barcode,
+            groups    => [ map { $_->name } @{$u->groups} ],
         };
-      
+
         $conn->respond($hash);
     }
 
@@ -298,61 +298,61 @@ sub process_users_of_interest_results {
 
 
 __PACKAGE__->register_method(
-	method    => 'users_owing_money',
-	api_name  => 'open-ils.collections.users_owing_money.retrieve',
-	api_level => 1,
-	argc      => 5,
+    method    => 'users_owing_money',
+    api_name  => 'open-ils.collections.users_owing_money.retrieve',
+    api_level => 1,
+    argc      => 5,
     stream    => 1,
-	signature => { 
-		desc     => q/
-			Returns an array of users that owe money during 
-			the given time frame at the location (or child locations)
-			provided/,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'start_date',
-				desc => 'The start of the time interval to check',
-				type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
-			},
-
-			{	name => 'end_date',
-				desc => q/Then end date of the time interval to check/,
-				type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
-			},
-			{	name => 'fine_level',
-				desc => q/The fine threshold at which users will be included in the search results /,
-				type => q/number/,
-			},
-			{	name => 'locations',
-				desc => q/  A list of one or more org-unit short names.
-							If a selected location has 'child' locations (e.g. a library region), the
-							child locations will be included in the search/,
-				type => q'string',
-			},
-		],
-	  	'return' => { 
-			desc		=> q/An array of user information objects/,
-			type		=> 'array',
-		}
-	}
+    signature => {
+        desc     => q/
+            Returns an array of users that owe money during
+            the given time frame at the location (or child locations)
+            provided/,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'start_date',
+                desc => 'The start of the time interval to check',
+                type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
+            },
+
+            {    name => 'end_date',
+                desc => q/Then end date of the time interval to check/,
+                type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
+            },
+            {    name => 'fine_level',
+                desc => q/The fine threshold at which users will be included in the search results /,
+                type => q/number/,
+            },
+            {    name => 'locations',
+                desc => q/  A list of one or more org-unit short names.
+                            If a selected location has 'child' locations (e.g. a library region), the
+                            child locations will be included in the search/,
+                type => q'string',
+            },
+        ],
+          'return' => {
+            desc        => q/An array of user information objects/,
+            type        => 'array',
+        }
+    }
 );
 
 
 sub users_owing_money {
-	my( $self, $conn, $auth, $start_date, $end_date, $fine_level, @locations ) = @_;
+    my( $self, $conn, $auth, $start_date, $end_date, $fine_level, @locations ) = @_;
 
-	return OpenILS::Event->new('BAD_PARAMS') 
-		unless ($auth and $start_date and $end_date and @locations);
+    return OpenILS::Event->new('BAD_PARAMS')
+        unless ($auth and $start_date and $end_date and @locations);
 
-	my $e = new_editor(authtoken => $auth);
-	return $e->event unless $e->checkauth;
+    my $e = new_editor(authtoken => $auth);
+    return $e->event unless $e->checkauth;
 
-	# they need global perms to view users so no org is provided
-    return $e->event unless $e->allowed('VIEW_USER'); 
+    # they need global perms to view users so no org is provided
+    return $e->event unless $e->allowed('VIEW_USER');
 
     my $data = [];
 
@@ -373,65 +373,65 @@ sub users_owing_money {
 
 
 __PACKAGE__->register_method(
-	method    => 'users_with_activity',
-	api_name  => 'open-ils.collections.users_with_activity.retrieve',
-	api_level => 1,
-	argc      => 4,
+    method    => 'users_with_activity',
+    api_name  => 'open-ils.collections.users_with_activity.retrieve',
+    api_level => 1,
+    argc      => 4,
     stream    => 1,
-	signature => { 
-		desc     => q/
-			Returns an array of users that are already in collections 
-			and had any type of billing or payment activity within
-			the given time frame at the location (or child locations)
-			provided/,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'start_date',
-				desc => 'The start of the time interval to check',
-				type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
-			},
-
-			{	name => 'end_date',
-				desc => q/Then end date of the time interval to check/,
-				type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
-			},
-			{	name => 'location',
-				desc => q/The short-name of the orginization unit (library) at which the activity occurred.
-							If a selected location has 'child' locations (e.g. a library region), the
-							child locations will be included in the search/,
-				type => q'string',
-			},
-		],
-
-	  	'return' => { 
-			desc		=> q/An array of user information objects/,
-			type		=> 'array',
-		}
-	}
+    signature => {
+        desc     => q/
+            Returns an array of users that are already in collections
+            and had any type of billing or payment activity within
+            the given time frame at the location (or child locations)
+            provided/,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'start_date',
+                desc => 'The start of the time interval to check',
+                type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
+            },
+
+            {    name => 'end_date',
+                desc => q/Then end date of the time interval to check/,
+                type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
+            },
+            {    name => 'location',
+                desc => q/The short-name of the orginization unit (library) at which the activity occurred.
+                            If a selected location has 'child' locations (e.g. a library region), the
+                            child locations will be included in the search/,
+                type => q'string',
+            },
+        ],
+
+          'return' => {
+            desc        => q/An array of user information objects/,
+            type        => 'array',
+        }
+    }
 );
 
 sub users_with_activity {
-	my( $self, $conn, $auth, $start_date, $end_date, $location ) = @_;
-	return OpenILS::Event->new('BAD_PARAMS') 
-		unless ($auth and $start_date and $end_date and $location);
+    my( $self, $conn, $auth, $start_date, $end_date, $location ) = @_;
+    return OpenILS::Event->new('BAD_PARAMS')
+        unless ($auth and $start_date and $end_date and $location);
 
-	my $e = new_editor(authtoken => $auth);
-	return $e->event unless $e->checkauth;
+    my $e = new_editor(authtoken => $auth);
+    return $e->event unless $e->checkauth;
 
-	my $org = $e->search_actor_org_unit({shortname => $location})
-		or return $e->event; $org = $org->[0];
+    my $org = $e->search_actor_org_unit({shortname => $location})
+        or return $e->event; $org = $org->[0];
     return $e->event unless $e->allowed('VIEW_USER', $org->id);
 
     my $ses = OpenSRF::AppSession->create('open-ils.storage');
 
     my $start = time;
     my $req = $ses->request(
-		'open-ils.storage.money.collections.users_with_activity.atomic', 
-		$start_date, $end_date, $location);
+        'open-ils.storage.money.collections.users_with_activity.atomic',
+        $start_date, $end_date, $location);
 
     $conn->status( new OpenSRF::DomainObject::oilsContinueStatus );
 
@@ -454,99 +454,99 @@ sub users_with_activity {
 
 
 __PACKAGE__->register_method(
-	method    => 'put_into_collections',
-	api_name  => 'open-ils.collections.put_into_collections',
-	api_level => 1,
-	argc      => 3,
-	signature => { 
-		desc     => q/
-			Marks a user as being "in collections" at a given location
-			/,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'user_id',
-				desc => 'The id of the user to plact into collections',
-				type => 'number',
-			},
-
-			{	name => 'location',
-				desc => q/The short-name of the orginization unit (library) 
-					for which the user is being placed in collections/,
-				type => q'string',
-			},
-			{	name => 'fee_amount',
-				desc => q/
-					The amount of money that a patron should be fined.  
-					If this field is empty, no fine is created.
-				/,
-				type => 'string',
-			},
-			{	name => 'fee_note',
-				desc => q/
-					Custom note that is added to the the billing.  
-					This field is not required.
-					Note: fee_note is not the billing_type.  Billing_type type is
-					decided by the system. (e.g. "fee for collections").  
-					fee_note is purely used for any additional needed information
-					and is only visible to staff.
-				/,
-				type => 'string',
-			},
-		],
-
-	  	'return' => { 
-			desc		=> q/A SUCCESS event on success, error event on failure/,
-			type		=> 'object',
-		}
-	}
+    method    => 'put_into_collections',
+    api_name  => 'open-ils.collections.put_into_collections',
+    api_level => 1,
+    argc      => 3,
+    signature => {
+        desc     => q/
+            Marks a user as being "in collections" at a given location
+            /,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'user_id',
+                desc => 'The id of the user to plact into collections',
+                type => 'number',
+            },
+
+            {    name => 'location',
+                desc => q/The short-name of the orginization unit (library)
+                    for which the user is being placed in collections/,
+                type => q'string',
+            },
+            {    name => 'fee_amount',
+                desc => q/
+                    The amount of money that a patron should be fined.
+                    If this field is empty, no fine is created.
+                /,
+                type => 'string',
+            },
+            {    name => 'fee_note',
+                desc => q/
+                    Custom note that is added to the the billing.
+                    This field is not required.
+                    Note: fee_note is not the billing_type.  Billing_type type is
+                    decided by the system. (e.g. "fee for collections").
+                    fee_note is purely used for any additional needed information
+                    and is only visible to staff.
+                /,
+                type => 'string',
+            },
+        ],
+
+          'return' => {
+            desc        => q/A SUCCESS event on success, error event on failure/,
+            type        => 'object',
+        }
+    }
 );
 sub put_into_collections {
-	my( $self, $conn, $auth, $user_id, $location, $fee_amount, $fee_note ) = @_;
+    my( $self, $conn, $auth, $user_id, $location, $fee_amount, $fee_note ) = @_;
 
-	return OpenILS::Event->new('BAD_PARAMS') 
-		unless ($auth and $user_id and $location);
+    return OpenILS::Event->new('BAD_PARAMS')
+        unless ($auth and $user_id and $location);
 
-	my $e = new_editor(authtoken => $auth, xact =>1);
-	return $e->event unless $e->checkauth;
+    my $e = new_editor(authtoken => $auth, xact =>1);
+    return $e->event unless $e->checkauth;
 
-	my $org = $e->search_actor_org_unit({shortname => $location});
-	return $e->event unless $org = $org->[0];
-	return $e->event unless $e->allowed('money.collections_tracker.create', $org->id);
+    my $org = $e->search_actor_org_unit({shortname => $location});
+    return $e->event unless $org = $org->[0];
+    return $e->event unless $e->allowed('money.collections_tracker.create', $org->id);
 
-	my $existing = $e->search_money_collections_tracker(
-		{
-			location		=> $org->id,
-			usr			=> $user_id,
-			collector	=> $e->requestor->id
-		},
-		{idlist => 1}
-	);
+    my $existing = $e->search_money_collections_tracker(
+        {
+            location        => $org->id,
+            usr            => $user_id,
+            collector    => $e->requestor->id
+        },
+        {idlist => 1}
+    );
 
-	return OpenILS::Event->new('MONEY_COLLECTIONS_TRACKER_EXISTS') if @$existing;
+    return OpenILS::Event->new('MONEY_COLLECTIONS_TRACKER_EXISTS') if @$existing;
 
-	$logger->info("collect: user ".$e->requestor->id. 
-		" putting user $user_id into collections for $location");
+    $logger->info("collect: user ".$e->requestor->id.
+        " putting user $user_id into collections for $location");
 
-	my $tracker = Fieldmapper::money::collections_tracker->new;
+    my $tracker = Fieldmapper::money::collections_tracker->new;
 
-	$tracker->usr($user_id);
-	$tracker->collector($e->requestor->id);
-	$tracker->location($org->id);
-	$tracker->enter_time('now');
+    $tracker->usr($user_id);
+    $tracker->collector($e->requestor->id);
+    $tracker->location($org->id);
+    $tracker->enter_time('now');
 
-	$e->create_money_collections_tracker($tracker) 
-		or return $e->event;
+    $e->create_money_collections_tracker($tracker)
+        or return $e->event;
 
-	if( $fee_amount ) {
-		my $evt = add_collections_fee($e, $user_id, $org, $fee_amount, $fee_note );
-		return $evt if $evt;
-	}
+    if( $fee_amount ) {
+        my $evt = add_collections_fee($e, $user_id, $org, $fee_amount, $fee_note );
+        return $evt if $evt;
+    }
 
-	$e->commit;
+    $e->commit;
 
     my $pen = Fieldmapper::actor::user_standing_penalty->new;
     $pen->org_unit($org->id);
@@ -556,241 +556,241 @@ sub put_into_collections {
     $pen->note($fee_note) if $fee_note;
     $U->simplereq('open-ils.actor', 'open-ils.actor.user.penalty.apply', $auth, $pen);
 
-	return OpenILS::Event->new('SUCCESS');
+    return OpenILS::Event->new('SUCCESS');
 }
 
 sub add_collections_fee {
-	my( $e, $patron_id, $org, $fee_amount, $fee_note ) = @_;
+    my( $e, $patron_id, $org, $fee_amount, $fee_note ) = @_;
 
-	$fee_note ||= "";
+    $fee_note ||= "";
 
-	$logger->info("collect: adding fee to user $patron_id : $fee_amount : $fee_note");
+    $logger->info("collect: adding fee to user $patron_id : $fee_amount : $fee_note");
 
-	my $xact = Fieldmapper::money::grocery->new;
-	$xact->usr($patron_id);
-	$xact->xact_start('now');
-	$xact->billing_location($org->id);
+    my $xact = Fieldmapper::money::grocery->new;
+    $xact->usr($patron_id);
+    $xact->xact_start('now');
+    $xact->billing_location($org->id);
 
-	$xact = $e->create_money_grocery($xact) or return $e->event;
+    $xact = $e->create_money_grocery($xact) or return $e->event;
 
-	my $bill = Fieldmapper::money::billing->new;
-	$bill->note($fee_note);
-	$bill->xact($xact->id);
-	$bill->btype(2);
-	$bill->billing_type(OILS_BILLING_TYPE_COLLECTION_FEE);
-	$bill->amount($fee_amount);
+    my $bill = Fieldmapper::money::billing->new;
+    $bill->note($fee_note);
+    $bill->xact($xact->id);
+    $bill->btype(2);
+    $bill->billing_type(OILS_BILLING_TYPE_COLLECTION_FEE);
+    $bill->amount($fee_amount);
 
-	$e->create_money_billing($bill) or return $e->event;
-	return undef;
+    $e->create_money_billing($bill) or return $e->event;
+    return undef;
 }
 
 
 
 
 __PACKAGE__->register_method(
-	method		=> 'remove_from_collections',
-	api_name		=> 'open-ils.collections.remove_from_collections',
-	signature	=> q/
-		Returns the users that are currently in collections and
-		had activity during the provided interval.  Dates are inclusive.
-		@param start_date The beginning of the activity interval
-		@param end_date The end of the activity interval
-		@param location The location at which the fines were created
-	/
+    method        => 'remove_from_collections',
+    api_name        => 'open-ils.collections.remove_from_collections',
+    signature    => q/
+        Returns the users that are currently in collections and
+        had activity during the provided interval.  Dates are inclusive.
+        @param start_date The beginning of the activity interval
+        @param end_date The end of the activity interval
+        @param location The location at which the fines were created
+    /
 );
 
 
 __PACKAGE__->register_method(
-	method    => 'remove_from_collections',
-	api_name  => 'open-ils.collections.remove_from_collections',
-	api_level => 1,
-	argc      => 3,
-	signature => { 
-		desc     => q/
-			Removes a user from the collections table for the given location
-			/,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'user_id',
-				desc => 'The id of the user to plact into collections',
-				type => 'number',
-			},
-
-			{	name => 'location',
-				desc => q/The short-name of the orginization unit (library) 
-					for which the user is being removed from collections/,
-				type => q'string',
-			},
-		],
-
-	  	'return' => { 
-			desc		=> q/A SUCCESS event on success, error event on failure/,
-			type		=> 'object',
-		}
-	}
+    method    => 'remove_from_collections',
+    api_name  => 'open-ils.collections.remove_from_collections',
+    api_level => 1,
+    argc      => 3,
+    signature => {
+        desc     => q/
+            Removes a user from the collections table for the given location
+            /,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'user_id',
+                desc => 'The id of the user to plact into collections',
+                type => 'number',
+            },
+
+            {    name => 'location',
+                desc => q/The short-name of the orginization unit (library)
+                    for which the user is being removed from collections/,
+                type => q'string',
+            },
+        ],
+
+          'return' => {
+            desc        => q/A SUCCESS event on success, error event on failure/,
+            type        => 'object',
+        }
+    }
 );
 
 sub remove_from_collections {
-	my( $self, $conn, $auth, $user_id, $location ) = @_;
+    my( $self, $conn, $auth, $user_id, $location ) = @_;
 
-	return OpenILS::Event->new('BAD_PARAMS') 
-		unless ($auth and $user_id and $location);
+    return OpenILS::Event->new('BAD_PARAMS')
+        unless ($auth and $user_id and $location);
 
-	my $e = new_editor(authtoken => $auth, xact=>1);
-	return $e->event unless $e->checkauth;
+    my $e = new_editor(authtoken => $auth, xact=>1);
+    return $e->event unless $e->checkauth;
 
-	my $org = $e->search_actor_org_unit({shortname => $location})
-		or return $e->event; $org = $org->[0];
-	return $e->event unless $e->allowed('money.collections_tracker.delete', $org->id);
+    my $org = $e->search_actor_org_unit({shortname => $location})
+        or return $e->event; $org = $org->[0];
+    return $e->event unless $e->allowed('money.collections_tracker.delete', $org->id);
 
-	my $tracker = $e->search_money_collections_tracker(
-		{ usr => $user_id, location => $org->id })
-		or return $e->event;
+    my $tracker = $e->search_money_collections_tracker(
+        { usr => $user_id, location => $org->id })
+        or return $e->event;
 
-	$e->delete_money_collections_tracker($tracker->[0])
-		or return $e->event;
+    $e->delete_money_collections_tracker($tracker->[0])
+        or return $e->event;
 
-	$e->commit;
-	return OpenILS::Event->new('SUCCESS');
+    $e->commit;
+    return OpenILS::Event->new('SUCCESS');
 }
 
 
 #__PACKAGE__->register_method(
-#	method		=> 'transaction_details',
-#	api_name		=> 'open-ils.collections.user_transaction_details.retrieve',
-#	signature	=> q/
-#	/
+#    method        => 'transaction_details',
+#    api_name        => 'open-ils.collections.user_transaction_details.retrieve',
+#    signature    => q/
+#    /
 #);
 
 
 __PACKAGE__->register_method(
-	method    => 'transaction_details',
-	api_name  => 'open-ils.collections.user_transaction_details.retrieve',
-	api_level => 1,
-	argc      => 5,
-	signature => { 
-		desc     => q/
-			Returns a list of fleshed user objects with transaction details
-			/,
-		            
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'start_date',
-				desc => 'The start of the time interval to check',
-				type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
-			},
-
-			{	name => 'end_date',
-				desc => q/Then end date of the time interval to check/,
-				type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
-			},
-			{	name => 'location',
-				desc => q/The short-name of the orginization unit (library) at which the activity occurred.
-							If a selected location has 'child' locations (e.g. a library region), the
-							child locations will be included in the search/,
-				type => q'string',
-			},
-			{
-				name => 'user_list',
-				desc => 'An array of user ids',
-				type => 'array',
-			},
-		],
-
-	  	'return' => { 
-			desc		=> q/A list of objects.  Object keys include:
-				usr :
-				transactions : An object with keys :
-					circulations : Fleshed circulation objects
-					grocery : Fleshed 'grocery' transaction objects
-				/,
-			type		=> 'object'
-		}
-	}
+    method    => 'transaction_details',
+    api_name  => 'open-ils.collections.user_transaction_details.retrieve',
+    api_level => 1,
+    argc      => 5,
+    signature => {
+        desc     => q/
+            Returns a list of fleshed user objects with transaction details
+            /,
+
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'start_date',
+                desc => 'The start of the time interval to check',
+                type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
+            },
+
+            {    name => 'end_date',
+                desc => q/Then end date of the time interval to check/,
+                type => q/string (ISO 8601 timestamp.  E.g. 2006-06-24, 1994-11-05T08:15:30-05:00 /,
+            },
+            {    name => 'location',
+                desc => q/The short-name of the orginization unit (library) at which the activity occurred.
+                            If a selected location has 'child' locations (e.g. a library region), the
+                            child locations will be included in the search/,
+                type => q'string',
+            },
+            {
+                name => 'user_list',
+                desc => 'An array of user ids',
+                type => 'array',
+            },
+        ],
+
+          'return' => {
+            desc        => q/A list of objects.  Object keys include:
+                usr :
+                transactions : An object with keys :
+                    circulations : Fleshed circulation objects
+                    grocery : Fleshed 'grocery' transaction objects
+                /,
+            type        => 'object'
+        }
+    }
 );
 
 sub transaction_details {
-	my( $self, $conn, $auth, $start_date, $end_date, $location, $user_list ) = @_;
-
-	return OpenILS::Event->new('BAD_PARAMS') 
-		unless ($auth and $start_date and $end_date and $location and $user_list);
-
-	my $e = new_editor(authtoken => $auth);
-	return $e->event unless $e->checkauth;
-
-	# they need global perms to view users so no org is provided
-	return $e->event unless $e->allowed('VIEW_USER'); 
-
-	my $org = $e->search_actor_org_unit({shortname => $location})
-		or return $e->event; $org = $org->[0];
-
-	# get a reference to the org inside of the tree
-	$org = $U->find_org($U->get_org_tree(), $org->id);
-
-	my @data;
-	for my $uid (@$user_list) {
-		my $blob = {};
-
-		$blob->{usr} = $e->retrieve_actor_user(
-			[
-				$uid,
-         	{
-            	"flesh"        => 1,
-            	"flesh_fields" =>  {
-               	"au" => [
-                  	"cards",
-                  	"card",
-                  	"standing_penalties",
-                  	"addresses",
-                  	"billing_address",
-                  	"mailing_address",
-                  	"stat_cat_entries"
-               	]
-            	}
-         	}
-			]
-		);
-
-		$blob->{transactions} = {
-			circulations	=> 
-				fetch_circ_xacts($e, $uid, $org, $start_date, $end_date),
-			grocery			=> 
-				fetch_grocery_xacts($e, $uid, $org, $start_date, $end_date),
-			reservations	=> 
-				fetch_reservation_xacts($e, $uid, $org, $start_date, $end_date)
-		};
-
-		# for each transaction, flesh the workstatoin on any attached payment
-		# and make the payment object a real object (e.g. cash payment), 
-		# not just a generic payment object
-		for my $xact ( 
-			@{$blob->{transactions}->{circulations}}, 
-			@{$blob->{transactions}->{reservations}}, 
-			@{$blob->{transactions}->{grocery}} ) {
-
-			my $ps;
-			if( $ps = $xact->payments and @$ps ) {
-				my @fleshed; my $evt;
-				for my $p (@$ps) {
-					($p, $evt) = flesh_payment($e,$p);
-					return $evt if $evt;
-					push(@fleshed, $p);
-				}
-				$xact->payments(\@fleshed);
-			}
-		}
-
-		push( @data, $blob );
-	}
-
-	return \@data;
+    my( $self, $conn, $auth, $start_date, $end_date, $location, $user_list ) = @_;
+
+    return OpenILS::Event->new('BAD_PARAMS')
+        unless ($auth and $start_date and $end_date and $location and $user_list);
+
+    my $e = new_editor(authtoken => $auth);
+    return $e->event unless $e->checkauth;
+
+    # they need global perms to view users so no org is provided
+    return $e->event unless $e->allowed('VIEW_USER');
+
+    my $org = $e->search_actor_org_unit({shortname => $location})
+        or return $e->event; $org = $org->[0];
+
+    # get a reference to the org inside of the tree
+    $org = $U->find_org($U->get_org_tree(), $org->id);
+
+    my @data;
+    for my $uid (@$user_list) {
+        my $blob = {};
+
+        $blob->{usr} = $e->retrieve_actor_user(
+            [
+                $uid,
+             {
+                "flesh"        => 1,
+                "flesh_fields" =>  {
+                   "au" => [
+                      "cards",
+                      "card",
+                      "standing_penalties",
+                      "addresses",
+                      "billing_address",
+                      "mailing_address",
+                      "stat_cat_entries"
+                   ]
+                }
+             }
+            ]
+        );
+
+        $blob->{transactions} = {
+            circulations    =>
+                fetch_circ_xacts($e, $uid, $org, $start_date, $end_date),
+            grocery            =>
+                fetch_grocery_xacts($e, $uid, $org, $start_date, $end_date),
+            reservations    =>
+                fetch_reservation_xacts($e, $uid, $org, $start_date, $end_date)
+        };
+
+        # for each transaction, flesh the workstatoin on any attached payment
+        # and make the payment object a real object (e.g. cash payment),
+        # not just a generic payment object
+        for my $xact (
+            @{$blob->{transactions}->{circulations}},
+            @{$blob->{transactions}->{reservations}},
+            @{$blob->{transactions}->{grocery}} ) {
+
+            my $ps;
+            if( $ps = $xact->payments and @$ps ) {
+                my @fleshed; my $evt;
+                for my $p (@$ps) {
+                    ($p, $evt) = flesh_payment($e,$p);
+                    return $evt if $evt;
+                    push(@fleshed, $p);
+                }
+                $xact->payments(\@fleshed);
+            }
+        }
+
+        push( @data, $blob );
+    }
+
+    return \@data;
 }
 
 __PACKAGE__->register_method(
@@ -799,8 +799,8 @@ __PACKAGE__->register_method(
     api_level => 1,
     stream    => 1,
     argc      => 2,
-    signature => { 
-        desc     => q/Collect balance information for users in collections.  By default, 
+    signature => {
+        desc     => q/Collect balance information for users in collections.  By default,
                         only the total balance owed is calculated.  Use the "include_xacts"
                         param to include per-transaction summaries as well./,
         params   => [
@@ -813,16 +813,16 @@ __PACKAGE__->register_method(
                     location   -- org unit shortname
                     start_date -- ISO 8601 date. limit to patrons added to collections on or after this date (optional).
                     end_date   -- ISO 8601 date. limit to patrons added to collections on or before this date (optional).
-                    user_id    -- retrieve information only for this user (takes preference over 
+                    user_id    -- retrieve information only for this user (takes preference over
                         start and end_date).  May be a single ID or list of IDs. (optional).
                     include_xacts -- If true, include a summary object per transaction in addition to the full balance owed
                 /,
                 type => q/hash/
             },
         ],
-        'return' => { 
+        'return' => {
             desc => q/
-                The file name prefix of the file to be created.  
+                The file name prefix of the file to be created.
                 The file name format will be:
                 user_balance_YYYY-MM-DD_${location}_${start_date}_${end_date}_${user_id}.[tmp|xml]
                 Optional params not provided by the caller will not be part of the file name.
@@ -845,8 +845,8 @@ sub user_balance_summary {
     my $end_date = $$args{end_date};
     my $user_id = $$args{user_id};
 
-    return OpenILS::Event->new('BAD_PARAMS') 
-        unless $auth and $location and 
+    return OpenILS::Event->new('BAD_PARAMS')
+        unless $auth and $location and
         ($start_date or $end_date or $user_id);
 
     my $e = new_editor(authtoken => $auth);
@@ -856,7 +856,7 @@ sub user_balance_summary {
         or return $e->event;
 
     # they need global perms to view users so no org is provided
-    return $e->event unless $e->allowed('VIEW_USER', $org->id); 
+    return $e->event unless $e->allowed('VIEW_USER', $org->id);
 
     my $org_list = $U->get_org_descendants($org->id);
 
@@ -885,24 +885,24 @@ sub user_balance_summary {
     }
 
     print $FILE "<Collections>\n"; # append to the document as we have data
-            
+
     for my $user_id (@user_list) {
         my $user_doc = XML::LibXML::Document->new;
         my $root = $user_doc->createElement('User');
         $user_doc->setDocumentElement($root);
 
         my $user = $e->retrieve_actor_user([
-            $user_id, {   
+            $user_id, {
             flesh        => 1,
             flesh_fields => {
                 au => [
                     'card',
-                  	'cards',
-                  	'standing_penalties',
-                  	'addresses',
-                  	'billing_address',
-                  	'mailing_address',
-                  	'stat_cat_entries'
+                    'cards',
+                    'standing_penalties',
+                    'addresses',
+                    'billing_address',
+                    'mailing_address',
+                    'stat_cat_entries'
                 ]
             }}
         ]);
@@ -930,11 +930,11 @@ sub user_balance_summary {
         # get the sum owed an all transactions
         my $balance = $e->json_query({
             select => {mbts => [
-                {   column => 'balance_owed', 
-                    transform => 'sum', 
+                {   column => 'balance_owed',
+                    transform => 'sum',
                     aggregate => 1
                 }
-            ]}, 
+            ]},
             from => 'mbts',
             where => {id => [@$circ_ids, @$groc_ids, @$res_ids]}
         })->[0];
@@ -942,7 +942,7 @@ sub user_balance_summary {
         $balance = $balance ? $balance->{balance_owed} : '0';
 
         my $xacts_node = $user_doc->createElement('Transactions');
-        my $balance_node = $user_doc->createElement('BalanceOwed'); 
+        my $balance_node = $user_doc->createElement('BalanceOwed');
         $balance_node->appendChild($user_doc->createTextNode($balance));
         $xacts_node->appendChild($balance_node);
         $root->appendChild($xacts_node);
@@ -985,7 +985,7 @@ sub setup_batch_file {
     my $user_id = $$args{user_id};
 
     my $conf = OpenSRF::Utils::SettingsClient->new;
-    my $dir_name = $conf->config_value(apps => 
+    my $dir_name = $conf->config_value(apps =>
         'open-ils.collections' => app_settings => 'batch_file_dir');
 
     if (!$dir_name) {
@@ -1018,179 +1018,179 @@ sub setup_batch_file {
 }
 
 sub flesh_payment {
-	my $e = shift;
-	my $p = shift;
-	my $type = $p->payment_type;
-	$logger->debug("collect: fleshing workstation on payment $type : ".$p->id);
-	my $meth = "retrieve_money_$type";
-	$p = $e->$meth($p->id) or return (undef, $e->event);
-	try {
-		$p->payment_type($type);
-		$p->cash_drawer(
-			$e->retrieve_actor_workstation(
-				[
-					$p->cash_drawer,
-					{
-						flesh => 1,
-						flesh_fields => { aws => [ 'owning_lib' ] }
-					}
-				]
-			)
-		);
-	} catch Error with {};
-	return ($p);
+    my $e = shift;
+    my $p = shift;
+    my $type = $p->payment_type;
+    $logger->debug("collect: fleshing workstation on payment $type : ".$p->id);
+    my $meth = "retrieve_money_$type";
+    $p = $e->$meth($p->id) or return (undef, $e->event);
+    try {
+        $p->payment_type($type);
+        $p->cash_drawer(
+            $e->retrieve_actor_workstation(
+                [
+                    $p->cash_drawer,
+                    {
+                        flesh => 1,
+                        flesh_fields => { aws => [ 'owning_lib' ] }
+                    }
+                ]
+            )
+        );
+    } catch Error with {};
+    return ($p);
 }
 
 
 # --------------------------------------------------------------
-# Collect all open circs for the user 
+# Collect all open circs for the user
 # For each circ, see if any billings or payments were created
-# during the given time period.  
+# during the given time period.
 # --------------------------------------------------------------
 sub fetch_circ_xacts {
-	my $e				= shift;
-	my $uid			= shift;
-	my $org			= shift;
-	my $start_date = shift;
-	my $end_date	= shift;
-
-	my @circs;
-
-	# at the specified org and each descendent org, 
-	# fetch the open circs for this user
-	$U->walk_org_tree( $org, 
-		sub {
-			my $n = shift;
-			$logger->debug("collect: searching for open circs at " . $n->shortname);
-			push( @circs, 
-				@{
-					$e->search_action_circulation(
-						{
-							usr			=> $uid, 
-							circ_lib		=> $n->id,
-						}, 
-						{idlist => 1}
-					)
-				}
-			);
-		}
-	);
-
-
-	my @data;
-	my $active_ids = fetch_active($e, \@circs, $start_date, $end_date);
-
-	for my $cid (@$active_ids) {
-		push( @data, 
-			$e->retrieve_action_circulation(
-				[
-					$cid,
-					{
-						flesh => 1,
-						flesh_fields => { 
-							circ => [ "billings", "payments", "circ_lib", 'target_copy' ]
-						}
-					}
-				]
-			)
-		);
-	}
-
-	return \@data;
+    my $e                = shift;
+    my $uid            = shift;
+    my $org            = shift;
+    my $start_date = shift;
+    my $end_date    = shift;
+
+    my @circs;
+
+    # at the specified org and each descendent org,
+    # fetch the open circs for this user
+    $U->walk_org_tree( $org,
+        sub {
+            my $n = shift;
+            $logger->debug("collect: searching for open circs at " . $n->shortname);
+            push( @circs,
+                @{
+                    $e->search_action_circulation(
+                        {
+                            usr            => $uid,
+                            circ_lib        => $n->id,
+                        },
+                        {idlist => 1}
+                    )
+                }
+            );
+        }
+    );
+
+
+    my @data;
+    my $active_ids = fetch_active($e, \@circs, $start_date, $end_date);
+
+    for my $cid (@$active_ids) {
+        push( @data,
+            $e->retrieve_action_circulation(
+                [
+                    $cid,
+                    {
+                        flesh => 1,
+                        flesh_fields => {
+                            circ => [ "billings", "payments", "circ_lib", 'target_copy' ]
+                        }
+                    }
+                ]
+            )
+        );
+    }
+
+    return \@data;
 }
 
 sub fetch_grocery_xacts {
-	my $e				= shift;
-	my $uid			= shift;
-	my $org			= shift;
-	my $start_date = shift;
-	my $end_date	= shift;
-
-	my @xacts;
-	$U->walk_org_tree( $org, 
-		sub {
-			my $n = shift;
-			$logger->debug("collect: searching for open grocery xacts at " . $n->shortname);
-			push( @xacts, 
-				@{
-					$e->search_money_grocery(
-						{
-							usr					=> $uid, 
-							billing_location	=> $n->id,
-						}, 
-						{idlist => 1}
-					)
-				}
-			);
-		}
-	);
-
-	my @data;
-	my $active_ids = fetch_active($e, \@xacts, $start_date, $end_date);
-
-	for my $id (@$active_ids) {
-		push( @data, 
-			$e->retrieve_money_grocery(
-				[
-					$id,
-					{
-						flesh => 1,
-						flesh_fields => { 
-							mg => [ "billings", "payments", "billing_location" ] }
-					}
-				]
-			)
-		);
-	}
-
-	return \@data;
+    my $e                = shift;
+    my $uid            = shift;
+    my $org            = shift;
+    my $start_date = shift;
+    my $end_date    = shift;
+
+    my @xacts;
+    $U->walk_org_tree( $org,
+        sub {
+            my $n = shift;
+            $logger->debug("collect: searching for open grocery xacts at " . $n->shortname);
+            push( @xacts,
+                @{
+                    $e->search_money_grocery(
+                        {
+                            usr                    => $uid,
+                            billing_location    => $n->id,
+                        },
+                        {idlist => 1}
+                    )
+                }
+            );
+        }
+    );
+
+    my @data;
+    my $active_ids = fetch_active($e, \@xacts, $start_date, $end_date);
+
+    for my $id (@$active_ids) {
+        push( @data,
+            $e->retrieve_money_grocery(
+                [
+                    $id,
+                    {
+                        flesh => 1,
+                        flesh_fields => {
+                            mg => [ "billings", "payments", "billing_location" ] }
+                    }
+                ]
+            )
+        );
+    }
+
+    return \@data;
 }
 
 sub fetch_reservation_xacts {
-	my $e				= shift;
-	my $uid			= shift;
-	my $org			= shift;
-	my $start_date = shift;
-	my $end_date	= shift;
-
-	my @xacts;
-	$U->walk_org_tree( $org, 
-		sub {
-			my $n = shift;
-			$logger->debug("collect: searching for open grocery xacts at " . $n->shortname);
-			push( @xacts, 
-				@{
-					$e->search_booking_reservation(
-						{
-							usr					=> $uid, 
-							pickup_lib      	=> $n->id,
-						}, 
-						{idlist => 1}
-					)
-				}
-			);
-		}
-	);
-
-	my @data;
-	my $active_ids = fetch_active($e, \@xacts, $start_date, $end_date);
-
-	for my $id (@$active_ids) {
-		push( @data, 
-			$e->retrieve_booking_reservation(
-				[
-					$id,
-					{
-						flesh => 1,
-						flesh_fields => { 
-							bresv => [ "billings", "payments", "pickup_lib" ] }
-					}
-				]
-			)
-		);
-	}
-
-	return \@data;
+    my $e                = shift;
+    my $uid            = shift;
+    my $org            = shift;
+    my $start_date = shift;
+    my $end_date    = shift;
+
+    my @xacts;
+    $U->walk_org_tree( $org,
+        sub {
+            my $n = shift;
+            $logger->debug("collect: searching for open grocery xacts at " . $n->shortname);
+            push( @xacts,
+                @{
+                    $e->search_booking_reservation(
+                        {
+                            usr                    => $uid,
+                            pickup_lib          => $n->id,
+                        },
+                        {idlist => 1}
+                    )
+                }
+            );
+        }
+    );
+
+    my @data;
+    my $active_ids = fetch_active($e, \@xacts, $start_date, $end_date);
+
+    for my $id (@$active_ids) {
+        push( @data,
+            $e->retrieve_booking_reservation(
+                [
+                    $id,
+                    {
+                        flesh => 1,
+                        flesh_fields => {
+                            bresv => [ "billings", "payments", "pickup_lib" ] }
+                    }
+                ]
+            )
+        );
+    }
+
+    return \@data;
 }
 
 
@@ -1200,103 +1200,103 @@ sub fetch_reservation_xacts {
 # had any activity within the given time span
 # --------------------------------------------------------------
 sub fetch_active {
-	my( $e, $ids, $start_date, $end_date ) = @_;
+    my( $e, $ids, $start_date, $end_date ) = @_;
 
-	# use this..
-	# { payment_ts => { between => [ $start, $end ] } } ' ;) 
+    # use this..
+    # { payment_ts => { between => [ $start, $end ] } } ' ;)
 
-	my @active;
-	for my $id (@$ids) {
+    my @active;
+    for my $id (@$ids) {
 
-		# see if any billings were created in the given time range
-		my $bills = $e->search_money_billing (
-			{
-				xact			=> $id,
-				billing_ts	=> { between => [ $start_date, $end_date ] },
-			},
-			{idlist =>1}
-		);
+        # see if any billings were created in the given time range
+        my $bills = $e->search_money_billing (
+            {
+                xact            => $id,
+                billing_ts    => { between => [ $start_date, $end_date ] },
+            },
+            {idlist =>1}
+        );
 
-		my $payments = [];
+        my $payments = [];
 
-		if( !@$bills ) {
+        if( !@$bills ) {
 
-			# see if any payments were created in the given range
-			$payments = $e->search_money_payment (
-				{
-					xact			=> $id,
-					payment_ts	=> { between => [ $start_date, $end_date ] },
-				},
-				{idlist =>1}
-			);
-		}
+            # see if any payments were created in the given range
+            $payments = $e->search_money_payment (
+                {
+                    xact            => $id,
+                    payment_ts    => { between => [ $start_date, $end_date ] },
+                },
+                {idlist =>1}
+            );
+        }
 
 
-		push( @active, $id ) if @$bills or @$payments;
-	}
+        push( @active, $id ) if @$bills or @$payments;
+    }
 
-	return \@active;
+    return \@active;
 }
 
 
 __PACKAGE__->register_method(
-	method    => 'create_user_note',
-	api_name  => 'open-ils.collections.patron_note.create',
-	api_level => 1,
-	argc      => 4,
-	signature => { 
-		desc     => q/ Adds a note to a patron's account /,
-		params   => [
-			{	name => 'auth',
-				desc => 'The authentication token',
-				type => 'string' },
-
-			{	name => 'user_barcode',
-				desc => q/The patron's barcode/,
-				type => q/string/,
-			},
-			{	name => 'title',
-				desc => q/The title of the note/,
-				type => q/string/,
-			},
-
-			{	name => 'note',
-				desc => q/The text of the note/,
-				type => q/string/,
-			},
-		],
-
-	  	'return' => { 
-			desc		=> q/
-				Returns SUCCESS event on success, error event otherwise.
-				/,
-			type		=> 'object'
-		}
-	}
+    method    => 'create_user_note',
+    api_name  => 'open-ils.collections.patron_note.create',
+    api_level => 1,
+    argc      => 4,
+    signature => {
+        desc     => q/ Adds a note to a patron's account /,
+        params   => [
+            {    name => 'auth',
+                desc => 'The authentication token',
+                type => 'string' },
+
+            {    name => 'user_barcode',
+                desc => q/The patron's barcode/,
+                type => q/string/,
+            },
+            {    name => 'title',
+                desc => q/The title of the note/,
+                type => q/string/,
+            },
+
+            {    name => 'note',
+                desc => q/The text of the note/,
+                type => q/string/,
+            },
+        ],
+
+          'return' => {
+            desc        => q/
+                Returns SUCCESS event on success, error event otherwise.
+                /,
+            type        => 'object'
+        }
+    }
 );
 
 
 sub create_user_note {
-	my( $self, $conn, $auth, $user_barcode, $title, $note_txt ) = @_;
-
-	my $e = new_editor(authtoken=>$auth, xact=>1);
-	return $e->event unless $e->checkauth;
-	return $e->event unless $e->allowed('UPDATE_USER'); # XXX Makre more specific perm for this
-
-	return $e->event unless 
-		my $card = $e->search_actor_card({barcode=>$user_barcode})->[0];
-
-	my $note = Fieldmapper::actor::usr_note->new;
-	$note->usr($card->usr);
-	$note->title($title);
-	$note->creator($e->requestor->id);
-	$note->create_date('now');
-	$note->pub('f');
-	$note->value($note_txt);
-
-	$e->create_actor_usr_note($note) or return $e->event;
-	$e->commit;
-	return OpenILS::Event->new('SUCCESS');
+    my( $self, $conn, $auth, $user_barcode, $title, $note_txt ) = @_;
+
+    my $e = new_editor(authtoken=>$auth, xact=>1);
+    return $e->event unless $e->checkauth;
+    return $e->event unless $e->allowed('UPDATE_USER'); # XXX Makre more specific perm for this
+
+    return $e->event unless
+        my $card = $e->search_actor_card({barcode=>$user_barcode})->[0];
+
+    my $note = Fieldmapper::actor::usr_note->new;
+    $note->usr($card->usr);
+    $note->title($title);
+    $note->creator($e->requestor->id);
+    $note->create_date('now');
+    $note->pub('f');
+    $note->value($note_txt);
+
+    $e->create_actor_usr_note($note) or return $e->event;
+    $e->commit;
+    return OpenILS::Event->new('SUCCESS');
 }