rolling back 14319. Did not mean to commit wholly re-tabbed file
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 8 Oct 2009 20:59:34 +0000 (20:59 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 8 Oct 2009 20:59:34 +0000 (20:59 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@14320 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Money.pm

index f9d7fd4..0d27690 100644 (file)
@@ -30,12 +30,12 @@ use OpenILS::Utils::CStoreEditor qw/:funcs/;
 use OpenILS::Utils::Penalty;
 
 __PACKAGE__->register_method(
-    method => "make_payments",
-    api_name => "open-ils.circ.money.payment",
+       method => "make_payments",
+       api_name => "open-ils.circ.money.payment",
     signature => {
         desc => q/Create payments for a given user and set of transactions,
-            login must have CREATE_PAYMENT priveleges.
-            If any payments fail, all are reverted back./,
+               login must have CREATE_PAYMENT priveleges.
+               If any payments fail, all are reverted back./,
         params => [
             {desc => 'Authtoken', type => 'string'},
             {desc => q/Arguments Hash, supporting the following params:
@@ -63,19 +63,19 @@ __PACKAGE__->register_method(
 );
 
 sub make_payments {
-    my($self, $client, $auth, $payments) = @_;
+       my($self, $client, $auth, $payments) = @_;
 
-    my $e = new_editor(authtoken => $auth, xact => 1);
+       my $e = new_editor(authtoken => $auth, xact => 1);
     return $e->die_event unless $e->checkauth;
 
-    my $type = $payments->{payment_type};
-    my $user_id = $payments->{userid};
-    my $credit = $payments->{patron_credit} || 0;
-    my $drawer = $e->requestor->wsid;
-    my $note = $payments->{note};
-    my $check_number = $payments->{check_number};
+       my $type = $payments->{payment_type};
+       my $user_id = $payments->{userid};
+       my $credit = $payments->{patron_credit} || 0;
+       my $drawer = $e->requestor->wsid;
+       my $note = $payments->{note};
+       my $check_number = $payments->{check_number};
     my $cc_args = $payments->{cc_args};
-    my $total_paid = 0;
+       my $total_paid = 0;
     my %orgs;
 
     my $patron = $e->retrieve_actor_user($user_id) or return $e->die_event;
@@ -83,7 +83,7 @@ sub make_payments {
     # A user is allowed to make credit card payments on his/her own behalf
     # All other scenarious require permission
     unless($type eq 'credit_card_payment' and $user_id == $e->requestor->id) {
-        return $e->die_event unless $e->allowed('CREATE_PAYMENT', $patron->home_ou);
+           return $e->die_event unless $e->allowed('CREATE_PAYMENT', $patron->home_ou);
     }
 
     # first collect the transactions and make sure the transaction
@@ -103,95 +103,95 @@ sub make_payments {
         $xacts{$xact_id} = $xact;
     }
 
-    for my $pay (@{$payments->{payments}}) {
+       for my $pay (@{$payments->{payments}}) {
 
         my $transid = $pay->[0];
-        my $amount = $pay->[1];
-        $amount =~ s/\$//og; # just to be safe
+               my $amount = $pay->[1];
+               $amount =~ s/\$//og; # just to be safe
         my $trans = $xacts{$transid};
 
-        $total_paid += $amount;
+               $total_paid += $amount;
 
         $orgs{$U->xact_org($transid, $e)} = 1;
 
         # making payment with existing patron credit
-        $credit -= $amount if $type eq 'credit_payment';
+               $credit -= $amount if $type eq 'credit_payment';
 
-        # A negative payment is a refund.  
-        if( $amount < 0 ) {
+               # A negative payment is a refund.  
+               if( $amount < 0 ) {
 
             # Negative credit card payments are not allowed
             if($type eq 'credit_card_payment') {
                 $e->rollback;
-                return OpenILS::Event->new(
+                               return OpenILS::Event->new(
                     'BAD_PARAMS', 
                     note => q/Negative credit card payments not allowed/
                 );
             }
 
-            # If the refund causes the transaction balance to exceed 0 dollars, 
-            # we are in effect loaning the patron money.  This is not allowed.
-            if( ($trans->balance_owed - $amount) > 0 ) {
+                       # If the refund causes the transaction balance to exceed 0 dollars, 
+                       # we are in effect loaning the patron money.  This is not allowed.
+                       if( ($trans->balance_owed - $amount) > 0 ) {
                 $e->rollback;
-                return OpenILS::Event->new('REFUND_EXCEEDS_BALANCE');
-            }
+                               return OpenILS::Event->new('REFUND_EXCEEDS_BALANCE');
+                       }
 
-            # Otherwise, make sure the refund does not exceed desk payments
-            # This is also not allowed
-            my $desk_total = 0;
-            my $desk_payments = $e->search_money_desk_payment({xact => $transid, voided => 'f'});
-            $desk_total += $_->amount for @$desk_payments;
+                       # Otherwise, make sure the refund does not exceed desk payments
+                       # This is also not allowed
+                       my $desk_total = 0;
+                       my $desk_payments = $e->search_money_desk_payment({xact => $transid, voided => 'f'});
+                       $desk_total += $_->amount for @$desk_payments;
 
-            if( (-$amount) > $desk_total ) {
+                       if( (-$amount) > $desk_total ) {
                 $e->rollback;
-                return OpenILS::Event->new(
-                    'REFUND_EXCEEDS_DESK_PAYMENTS', 
-                    payload => { allowed_refund => $desk_total, submitted_refund => -$amount } );
-            }
-        }
+                               return OpenILS::Event->new(
+                                       'REFUND_EXCEEDS_DESK_PAYMENTS', 
+                                       payload => { allowed_refund => $desk_total, submitted_refund => -$amount } );
+                       }
+               }
 
-        my $payobj = "Fieldmapper::money::$type";
-        $payobj = $payobj->new;
+               my $payobj = "Fieldmapper::money::$type";
+               $payobj = $payobj->new;
 
-        $payobj->amount($amount);
-        $payobj->amount_collected($amount);
-        $payobj->xact($transid);
-        $payobj->note($note);
+               $payobj->amount($amount);
+               $payobj->amount_collected($amount);
+               $payobj->xact($transid);
+               $payobj->note($note);
 
-        if ($payobj->has_field('accepting_usr')) { $payobj->accepting_usr($e->requestor->id); }
-        if ($payobj->has_field('cash_drawer')) { $payobj->cash_drawer($drawer); }
-        if ($payobj->has_field('cc_type')) { $payobj->cc_type($cc_args->{type}); }
-        if ($payobj->has_field('check_number')) { $payobj->check_number($check_number); }
+               if ($payobj->has_field('accepting_usr')) { $payobj->accepting_usr($e->requestor->id); }
+               if ($payobj->has_field('cash_drawer')) { $payobj->cash_drawer($drawer); }
+               if ($payobj->has_field('cc_type')) { $payobj->cc_type($cc_args->{type}); }
+               if ($payobj->has_field('check_number')) { $payobj->check_number($check_number); }
 
         # Store the last 4 digits?
-        #if ($payobj->has_field('cc_number')) { $payobj->cc_number($cc_args->{number}); }
-        #if ($payobj->has_field('approval_code')) { $payobj->approval_code($cc_args->{approval_code}); }
-        if ($payobj->has_field('expire_month')) { $payobj->expire_month($cc_args->{expire_month}); }
-        if ($payobj->has_field('expire_year')) { $payobj->expire_year($cc_args->{expire_year}); }
-        
-        # update the transaction if it's done 
-        if( (my $cred = ($trans->balance_owed - $amount)) <= 0 ) {
-
-            # Any overpay on this transaction goes directly into patron credit 
-            $cred = -$cred;
-            $credit += $cred;
+               #if ($payobj->has_field('cc_number')) { $payobj->cc_number($cc_args->{number}); }
+               #if ($payobj->has_field('approval_code')) { $payobj->approval_code($cc_args->{approval_code}); }
+               if ($payobj->has_field('expire_month')) { $payobj->expire_month($cc_args->{expire_month}); }
+               if ($payobj->has_field('expire_year')) { $payobj->expire_year($cc_args->{expire_year}); }
+               
+               # update the transaction if it's done 
+               if( (my $cred = ($trans->balance_owed - $amount)) <= 0 ) {
+
+                       # Any overpay on this transaction goes directly into patron credit 
+                       $cred = -$cred;
+                       $credit += $cred;
             my $circ = $e->retrieve_action_circulation($transid);
 
-            if(!$circ || $circ->stop_fines) {
-                # If this is a circulation, we can't close the transaction unless stop_fines is set
+                       if(!$circ || $circ->stop_fines) {
+                           # If this is a circulation, we can't close the transaction unless stop_fines is set
                 $trans = $e->retrieve_money_billable_transaction($transid);
-                $trans->xact_finish("now");
+                               $trans->xact_finish("now");
                 $e->update_money_billable_transaction($trans) or return $e->die_event;
-            }
-        }
+                       }
+               }
 
         my $method = "create_money_$type";
         $e->$method($payobj) or return $e->die_event;
 
-    } # all payment objects have been created and inserted. 
+       } # all payment objects have been created and inserted. 
 
-    my $evt = _update_patron_credit($e, $patron, $credit);
-    return $evt if $evt;
+       my $evt = _update_patron_credit($e, $patron, $credit);
+       return $evt if $evt;
 
     for my $org_id (keys %orgs) {
         # calculate penalties for each of the affected orgs
@@ -213,237 +213,237 @@ sub make_payments {
 
 
 sub _update_patron_credit {
-    my($e, $patron, $credit) = @_;
+       my($e, $patron, $credit) = @_;
     return undef if $credit == 0;
-    $patron->credit_forward_balance($patron->credit_forward_balance + $credit);
+       $patron->credit_forward_balance($patron->credit_forward_balance + $credit);
     return OpenILS::Event->new('NEGATIVE_PATRON_BALANCE') if $patron->credit_forward_balance < 0;
     $e->update_actor_user($patron) or return $e->die_event;
-    return undef;
+       return undef;
 }
 
 
 __PACKAGE__->register_method(
-    method  => "retrieve_payments",
-    api_name    => "open-ils.circ.money.payment.retrieve.all_",
-    notes       => "Returns a list of payments attached to a given transaction"
-    );
-    
+       method  => "retrieve_payments",
+       api_name        => "open-ils.circ.money.payment.retrieve.all_",
+       notes           => "Returns a list of payments attached to a given transaction"
+       );
+       
 sub retrieve_payments {
-    my( $self, $client, $login, $transid ) = @_;
+       my( $self, $client, $login, $transid ) = @_;
 
-    my( $staff, $evt ) =  
-        $apputils->checksesperm($login, 'VIEW_TRANSACTION');
-    return $evt if $evt;
+       my( $staff, $evt ) =  
+               $apputils->checksesperm($login, 'VIEW_TRANSACTION');
+       return $evt if $evt;
 
-    # XXX the logic here is wrong.. we need to check the owner of the transaction
-    # to make sure the requestor has access
+       # XXX the logic here is wrong.. we need to check the owner of the transaction
+       # to make sure the requestor has access
 
-    # XXX grab the view, for each object in the view, grab the real object
+       # XXX grab the view, for each object in the view, grab the real object
 
-    return $apputils->simplereq(
-        'open-ils.cstore',
-        'open-ils.cstore.direct.money.payment.search.atomic', { xact => $transid } );
+       return $apputils->simplereq(
+               'open-ils.cstore',
+               'open-ils.cstore.direct.money.payment.search.atomic', { xact => $transid } );
 }
 
 
 
 __PACKAGE__->register_method(
-    method  => "retrieve_payments2",
+       method  => "retrieve_payments2",
     authoritative => 1,
-    api_name    => "open-ils.circ.money.payment.retrieve.all",
-    notes       => "Returns a list of payments attached to a given transaction"
-    );
-    
+       api_name        => "open-ils.circ.money.payment.retrieve.all",
+       notes           => "Returns a list of payments attached to a given transaction"
+       );
+       
 sub retrieve_payments2 {
-    my( $self, $client, $login, $transid ) = @_;
-
-    my $e = new_editor(authtoken=>$login);
-    return $e->event unless $e->checkauth;
-    return $e->event unless $e->allowed('VIEW_TRANSACTION');
-
-    my @payments;
-    my $pmnts = $e->search_money_payment({ xact => $transid });
-    for( @$pmnts ) {
-        my $type = $_->payment_type;
-        my $meth = "retrieve_money_$type";
-        my $p = $e->$meth($_->id) or return $e->event;
-        $p->payment_type($type);
-        $p->cash_drawer($e->retrieve_actor_workstation($p->cash_drawer))
-            if $p->has_field('cash_drawer');
-        push( @payments, $p );
-    }
-
-    return \@payments;
+       my( $self, $client, $login, $transid ) = @_;
+
+       my $e = new_editor(authtoken=>$login);
+       return $e->event unless $e->checkauth;
+       return $e->event unless $e->allowed('VIEW_TRANSACTION');
+
+       my @payments;
+       my $pmnts = $e->search_money_payment({ xact => $transid });
+       for( @$pmnts ) {
+               my $type = $_->payment_type;
+               my $meth = "retrieve_money_$type";
+               my $p = $e->$meth($_->id) or return $e->event;
+               $p->payment_type($type);
+               $p->cash_drawer($e->retrieve_actor_workstation($p->cash_drawer))
+                       if $p->has_field('cash_drawer');
+               push( @payments, $p );
+       }
+
+       return \@payments;
 }
 
 
 
 __PACKAGE__->register_method(
-    method  => "create_grocery_bill",
-    api_name    => "open-ils.circ.money.grocery.create",
-    notes       => <<"  NOTE");
-    Creates a new grocery transaction using the transaction object provided
-    PARAMS: (login_session, money.grocery (mg) object)
-    NOTE
+       method  => "create_grocery_bill",
+       api_name        => "open-ils.circ.money.grocery.create",
+       notes           => <<"  NOTE");
+       Creates a new grocery transaction using the transaction object provided
+       PARAMS: (login_session, money.grocery (mg) object)
+       NOTE
 
 sub create_grocery_bill {
-    my( $self, $client, $login, $transaction ) = @_;
+       my( $self, $client, $login, $transaction ) = @_;
 
-    my( $staff, $evt ) = $apputils->checkses($login);
-    return $evt if $evt;
-    $evt = $apputils->check_perms($staff->id, 
-        $transaction->billing_location, 'CREATE_TRANSACTION' );
-    return $evt if $evt;
+       my( $staff, $evt ) = $apputils->checkses($login);
+       return $evt if $evt;
+       $evt = $apputils->check_perms($staff->id, 
+               $transaction->billing_location, 'CREATE_TRANSACTION' );
+       return $evt if $evt;
 
 
-    $logger->activity("Creating grocery bill " . Dumper($transaction) );
+       $logger->activity("Creating grocery bill " . Dumper($transaction) );
 
-    $transaction->clear_id;
-    my $session = $apputils->start_db_session;
-    my $transid = $session->request(
-        'open-ils.storage.direct.money.grocery.create', $transaction)->gather(1);
+       $transaction->clear_id;
+       my $session = $apputils->start_db_session;
+       my $transid = $session->request(
+               'open-ils.storage.direct.money.grocery.create', $transaction)->gather(1);
 
-    throw OpenSRF::EX ("Error creating new money.grocery") unless defined $transid;
+       throw OpenSRF::EX ("Error creating new money.grocery") unless defined $transid;
 
-    $logger->debug("Created new grocery transaction $transid");
-    
-    $apputils->commit_db_session($session);
+       $logger->debug("Created new grocery transaction $transid");
+       
+       $apputils->commit_db_session($session);
 
     my $e = new_editor(xact=>1);
     $evt = _check_open_xact($e, $transid);
     return $evt if $evt;
     $e->commit;
 
-    return $transid;
+       return $transid;
 }
 
 
 __PACKAGE__->register_method(
-    method => 'fetch_grocery',
-    api_name => 'open-ils.circ.money.grocery.retrieve'
+       method => 'fetch_grocery',
+       api_name => 'open-ils.circ.money.grocery.retrieve'
 );
 
 sub fetch_grocery {
-    my( $self, $conn, $auth, $id ) = @_;
-    my $e = new_editor(authtoken=>$auth);
-    return $e->event unless $e->checkauth;
-    return $e->event unless $e->allowed('VIEW_TRANSACTION'); # eh.. basically the same permission
-    my $g = $e->retrieve_money_grocery($id)
-        or return $e->event;
-    return $g;
+       my( $self, $conn, $auth, $id ) = @_;
+       my $e = new_editor(authtoken=>$auth);
+       return $e->event unless $e->checkauth;
+       return $e->event unless $e->allowed('VIEW_TRANSACTION'); # eh.. basically the same permission
+       my $g = $e->retrieve_money_grocery($id)
+               or return $e->event;
+       return $g;
 }
 
 
 __PACKAGE__->register_method(
-    method  => "billing_items",
+       method  => "billing_items",
     authoritative => 1,
-    api_name    => "open-ils.circ.money.billing.retrieve.all",
-    notes       =><<"   NOTE");
-    Returns a list of billing items for the given transaction.
-    PARAMS( login, transaction_id )
-    NOTE
+       api_name        => "open-ils.circ.money.billing.retrieve.all",
+       notes           =><<"   NOTE");
+       Returns a list of billing items for the given transaction.
+       PARAMS( login, transaction_id )
+       NOTE
 
 sub billing_items {
-    my( $self, $client, $login, $transid ) = @_;
-
-    my( $trans, $evt ) = $U->fetch_billable_xact($transid);
-    return $evt if $evt;
-
-    my $staff;
-    ($staff, $evt ) = $apputils->checkses($login);
-    return $evt if $evt;
-
-    if($staff->id ne $trans->usr) {
-        $evt = $U->check_perms($staff->id, $staff->home_ou, 'VIEW_TRANSACTION');
-        return $evt if $evt;
-    }
-    
-    return $apputils->simplereq( 'open-ils.cstore',
-        'open-ils.cstore.direct.money.billing.search.atomic', { xact => $transid } )
+       my( $self, $client, $login, $transid ) = @_;
+
+       my( $trans, $evt ) = $U->fetch_billable_xact($transid);
+       return $evt if $evt;
+
+       my $staff;
+       ($staff, $evt ) = $apputils->checkses($login);
+       return $evt if $evt;
+
+       if($staff->id ne $trans->usr) {
+               $evt = $U->check_perms($staff->id, $staff->home_ou, 'VIEW_TRANSACTION');
+               return $evt if $evt;
+       }
+       
+       return $apputils->simplereq( 'open-ils.cstore',
+               'open-ils.cstore.direct.money.billing.search.atomic', { xact => $transid } )
 }
 
 
 __PACKAGE__->register_method(
-    method  => "billing_items_create",
-    api_name    => "open-ils.circ.money.billing.create",
-    notes       =><<"   NOTE");
-    Creates a new billing line item
-    PARAMS( login, bill_object (mb) )
-    NOTE
+       method  => "billing_items_create",
+       api_name        => "open-ils.circ.money.billing.create",
+       notes           =><<"   NOTE");
+       Creates a new billing line item
+       PARAMS( login, bill_object (mb) )
+       NOTE
 
 sub billing_items_create {
-    my( $self, $client, $login, $billing ) = @_;
+       my( $self, $client, $login, $billing ) = @_;
 
-    my $e = new_editor(authtoken => $login, xact => 1);
-    return $e->die_event unless $e->checkauth;
-    return $e->die_event unless $e->allowed('CREATE_BILL');
+       my $e = new_editor(authtoken => $login, xact => 1);
+       return $e->die_event unless $e->checkauth;
+       return $e->die_event unless $e->allowed('CREATE_BILL');
 
-    my $xact = $e->retrieve_money_billable_transaction($billing->xact)
-        or return $e->die_event;
+       my $xact = $e->retrieve_money_billable_transaction($billing->xact)
+               or return $e->die_event;
 
-    # if the transaction was closed, re-open it
-    if($xact->xact_finish) {
-        $xact->clear_xact_finish;
-        $e->update_money_billable_transaction($xact)
-            or return $e->die_event;
-    }
+       # if the transaction was closed, re-open it
+       if($xact->xact_finish) {
+               $xact->clear_xact_finish;
+               $e->update_money_billable_transaction($xact)
+                       or return $e->die_event;
+       }
 
-    my $amt = $billing->amount;
-    $amt =~ s/\$//og;
-    $billing->amount($amt);
+       my $amt = $billing->amount;
+       $amt =~ s/\$//og;
+       $billing->amount($amt);
 
-    $e->create_money_billing($billing) or return $e->die_event;
+       $e->create_money_billing($billing) or return $e->die_event;
     my $evt = OpenILS::Utils::Penalty->calculate_penalties($e, $xact->usr, $U->xact_org($xact->id));
     return $evt if $evt;
-    $e->commit;
+       $e->commit;
 
-    return $billing->id;
+       return $billing->id;
 }
 
 __PACKAGE__->register_method(
-    method      =>  'void_bill',
-    api_name        => 'open-ils.circ.money.billing.void',
-    signature   => q/
-        Voids a bill
-        @param authtoken Login session key
-        @param billid Id for the bill to void.  This parameter may be repeated to reference other bills.
-        @return 1 on success, Event on error
-    /
+       method          =>      'void_bill',
+       api_name                => 'open-ils.circ.money.billing.void',
+       signature       => q/
+               Voids a bill
+               @param authtoken Login session key
+               @param billid Id for the bill to void.  This parameter may be repeated to reference other bills.
+               @return 1 on success, Event on error
+       /
 );
 
 
 sub void_bill {
-    my( $s, $c, $authtoken, @billids ) = @_;
+       my( $s, $c, $authtoken, @billids ) = @_;
 
-    my $e = new_editor( authtoken => $authtoken, xact => 1 );
-    return $e->die_event unless $e->checkauth;
-    return $e->die_event unless $e->allowed('VOID_BILLING');
+       my $e = new_editor( authtoken => $authtoken, xact => 1 );
+       return $e->die_event unless $e->checkauth;
+       return $e->die_event unless $e->allowed('VOID_BILLING');
 
     my %users;
     for my $billid (@billids) {
 
-        my $bill = $e->retrieve_money_billing($billid)
-            or return $e->die_event;
+           my $bill = $e->retrieve_money_billing($billid)
+                   or return $e->die_event;
 
         my $xact = $e->retrieve_money_billable_transaction($bill->xact)
             or return $e->die_event;
 
         if($U->is_true($bill->voided)) {
             $e->rollback;
-            return OpenILS::Event->new('BILL_ALREADY_VOIDED', payload => $bill);
+               return OpenILS::Event->new('BILL_ALREADY_VOIDED', payload => $bill);
         }
 
         my $org = $U->xact_org($bill->xact, $e);
         $users{$xact->usr} = {} unless $users{$xact->usr};
         $users{$xact->usr}->{$org} = 1;
 
-        $bill->voided('t');
-        $bill->voider($e->requestor->id);
-        $bill->void_time('now');
+           $bill->voided('t');
+           $bill->voider($e->requestor->id);
+           $bill->void_time('now');
     
-        $e->update_money_billing($bill) or return $e->die_event;
-        my $evt = _check_open_xact($e, $bill->xact, $xact);
-        return $evt if $evt;
+           $e->update_money_billing($bill) or return $e->die_event;
+           my $evt = _check_open_xact($e, $bill->xact, $xact);
+           return $evt if $evt;
     }
 
     # calculate penalties for all user/org combinations
@@ -453,183 +453,183 @@ sub void_bill {
         }
     }
 
-    $e->commit;
-    return 1;
+       $e->commit;
+       return 1;
 }
 
 __PACKAGE__->register_method(
-    method      =>  'edit_bill_note',
-    api_name        => 'open-ils.circ.money.billing.note.edit',
-    signature   => q/
-        Edits the note for a bill
-        @param authtoken Login session key
+       method          =>      'edit_bill_note',
+       api_name                => 'open-ils.circ.money.billing.note.edit',
+       signature       => q/
+               Edits the note for a bill
+               @param authtoken Login session key
         @param note The replacement note for the bills we're editing
-        @param billid Id for the bill to edit the note of.  This parameter may be repeated to reference other bills.
-        @return 1 on success, Event on error
-    /
+               @param billid Id for the bill to edit the note of.  This parameter may be repeated to reference other bills.
+               @return 1 on success, Event on error
+       /
 );
 
 
 sub edit_bill_note {
-    my( $s, $c, $authtoken, $note, @billids ) = @_;
+       my( $s, $c, $authtoken, $note, @billids ) = @_;
 
-    my $e = new_editor( authtoken => $authtoken, xact => 1 );
-    return $e->die_event unless $e->checkauth;
-    return $e->die_event unless $e->allowed('UPDATE_BILL_NOTE');
+       my $e = new_editor( authtoken => $authtoken, xact => 1 );
+       return $e->die_event unless $e->checkauth;
+       return $e->die_event unless $e->allowed('UPDATE_BILL_NOTE');
 
     for my $billid (@billids) {
 
-        my $bill = $e->retrieve_money_billing($billid)
-            or return $e->die_event;
+           my $bill = $e->retrieve_money_billing($billid)
+                   or return $e->die_event;
 
-        $bill->note($note);
+           $bill->note($note);
         # FIXME: Does this get audited?  Need some way so that the original creator of the bill does not get credit/blame for the new note.
     
-        $e->update_money_billing($bill) or return $e->die_event;
+           $e->update_money_billing($bill) or return $e->die_event;
     }
 
-    $e->commit;
-    return 1;
+       $e->commit;
+       return 1;
 }
 
 __PACKAGE__->register_method(
-    method      =>  'edit_payment_note',
-    api_name        => 'open-ils.circ.money.payment.note.edit',
-    signature   => q/
-        Edits the note for a payment
-        @param authtoken Login session key
+       method          =>      'edit_payment_note',
+       api_name                => 'open-ils.circ.money.payment.note.edit',
+       signature       => q/
+               Edits the note for a payment
+               @param authtoken Login session key
         @param note The replacement note for the payments we're editing
-        @param paymentid Id for the payment to edit the note of.  This parameter may be repeated to reference other payments.
-        @return 1 on success, Event on error
-    /
+               @param paymentid Id for the payment to edit the note of.  This parameter may be repeated to reference other payments.
+               @return 1 on success, Event on error
+       /
 );
 
 
 sub edit_payment_note {
-    my( $s, $c, $authtoken, $note, @paymentids ) = @_;
+       my( $s, $c, $authtoken, $note, @paymentids ) = @_;
 
-    my $e = new_editor( authtoken => $authtoken, xact => 1 );
-    return $e->die_event unless $e->checkauth;
-    return $e->die_event unless $e->allowed('UPDATE_PAYMENT_NOTE');
+       my $e = new_editor( authtoken => $authtoken, xact => 1 );
+       return $e->die_event unless $e->checkauth;
+       return $e->die_event unless $e->allowed('UPDATE_PAYMENT_NOTE');
 
     for my $paymentid (@paymentids) {
 
-        my $payment = $e->retrieve_money_payment($paymentid)
-            or return $e->die_event;
+           my $payment = $e->retrieve_money_payment($paymentid)
+                   or return $e->die_event;
 
-        $payment->note($note);
+           $payment->note($note);
         # FIXME: Does this get audited?  Need some way so that the original taker of the payment does not get credit/blame for the new note.
     
-        $e->update_money_payment($payment) or return $e->die_event;
+           $e->update_money_payment($payment) or return $e->die_event;
     }
 
-    $e->commit;
-    return 1;
+       $e->commit;
+       return 1;
 }
 
 sub _check_open_xact {
-    my( $editor, $xactid, $xact ) = @_;
+       my( $editor, $xactid, $xact ) = @_;
 
-    # Grab the transaction
-    $xact ||= $editor->retrieve_money_billable_transaction($xactid);
+       # Grab the transaction
+       $xact ||= $editor->retrieve_money_billable_transaction($xactid);
     return $editor->event unless $xact;
     $xactid ||= $xact->id;
 
-    # grab the summary and see how much is owed on this transaction
-    my ($summary) = $U->fetch_mbts($xactid, $editor);
-
-    # grab the circulation if it is a circ;
-    my $circ = $editor->retrieve_action_circulation($xactid);
-
-    # If nothing is owed on the transaction but it is still open
-    # and this transaction is not an open circulation, close it
-    if( 
-        ( $summary->balance_owed == 0 and ! $xact->xact_finish ) and
-        ( !$circ or $circ->stop_fines )) {
-
-        $logger->info("closing transaction ".$xact->id. ' becauase balance_owed == 0');
-        $xact->xact_finish('now');
-        $editor->update_money_billable_transaction($xact)
-            or return $editor->event;
-        return undef;
-    }
-
-    # If money is owed or a refund is due on the xact and xact_finish
-    # is set, clear it (to reopen the xact) and update
-    if( $summary->balance_owed != 0 and $xact->xact_finish ) {
-        $logger->info("re-opening transaction ".$xact->id. ' becauase balance_owed != 0');
-        $xact->clear_xact_finish;
-        $editor->update_money_billable_transaction($xact)
-            or return $editor->event;
-        return undef;
-    }
-
-    return undef;
+       # grab the summary and see how much is owed on this transaction
+       my ($summary) = $U->fetch_mbts($xactid, $editor);
+
+       # grab the circulation if it is a circ;
+       my $circ = $editor->retrieve_action_circulation($xactid);
+
+       # If nothing is owed on the transaction but it is still open
+       # and this transaction is not an open circulation, close it
+       if( 
+               ( $summary->balance_owed == 0 and ! $xact->xact_finish ) and
+               ( !$circ or $circ->stop_fines )) {
+
+               $logger->info("closing transaction ".$xact->id. ' becauase balance_owed == 0');
+               $xact->xact_finish('now');
+               $editor->update_money_billable_transaction($xact)
+                       or return $editor->event;
+               return undef;
+       }
+
+       # If money is owed or a refund is due on the xact and xact_finish
+       # is set, clear it (to reopen the xact) and update
+       if( $summary->balance_owed != 0 and $xact->xact_finish ) {
+               $logger->info("re-opening transaction ".$xact->id. ' becauase balance_owed != 0');
+               $xact->clear_xact_finish;
+               $editor->update_money_billable_transaction($xact)
+                       or return $editor->event;
+               return undef;
+       }
+
+       return undef;
 }
 
 
 
 __PACKAGE__->register_method (
-    method => 'fetch_mbts',
+       method => 'fetch_mbts',
     authoritative => 1,
-    api_name => 'open-ils.circ.money.billable_xact_summary.retrieve'
+       api_name => 'open-ils.circ.money.billable_xact_summary.retrieve'
 );
 sub fetch_mbts {
-    my( $self, $conn, $auth, $id) = @_;
+       my( $self, $conn, $auth, $id) = @_;
 
-    my $e = new_editor(xact => 1, authtoken=>$auth);
-    return $e->event unless $e->checkauth;
-    my ($mbts) = $U->fetch_mbts($id, $e);
+       my $e = new_editor(xact => 1, authtoken=>$auth);
+       return $e->event unless $e->checkauth;
+       my ($mbts) = $U->fetch_mbts($id, $e);
 
-    my $user = $e->retrieve_actor_user($mbts->usr)
-        or return $e->die_event;
+       my $user = $e->retrieve_actor_user($mbts->usr)
+               or return $e->die_event;
 
-    return $e->die_event unless $e->allowed('VIEW_TRANSACTION', $user->home_ou);
-    $e->rollback;
-    return $mbts
+       return $e->die_event unless $e->allowed('VIEW_TRANSACTION', $user->home_ou);
+       $e->rollback;
+       return $mbts
 }
 
 
 
 __PACKAGE__->register_method(
-    method => 'desk_payments',
-    api_name => 'open-ils.circ.money.org_unit.desk_payments'
+       method => 'desk_payments',
+       api_name => 'open-ils.circ.money.org_unit.desk_payments'
 );
 
 sub desk_payments {
-    my( $self, $conn, $auth, $org, $start_date, $end_date ) = @_;
-    my $e = new_editor(authtoken=>$auth);
-    return $e->event unless $e->checkauth;
-    return $e->event unless $e->allowed('VIEW_TRANSACTION', $org);
-    my $data = $U->storagereq(
-        'open-ils.storage.money.org_unit.desk_payments.atomic',
-        $org, $start_date, $end_date );
-
-    $_->workstation( $_->workstation->name ) for(@$data);
-    return $data;
+       my( $self, $conn, $auth, $org, $start_date, $end_date ) = @_;
+       my $e = new_editor(authtoken=>$auth);
+       return $e->event unless $e->checkauth;
+       return $e->event unless $e->allowed('VIEW_TRANSACTION', $org);
+       my $data = $U->storagereq(
+               'open-ils.storage.money.org_unit.desk_payments.atomic',
+               $org, $start_date, $end_date );
+
+       $_->workstation( $_->workstation->name ) for(@$data);
+       return $data;
 }
 
 
 __PACKAGE__->register_method(
-    method => 'user_payments',
-    api_name => 'open-ils.circ.money.org_unit.user_payments'
+       method => 'user_payments',
+       api_name => 'open-ils.circ.money.org_unit.user_payments'
 );
 
 sub user_payments {
-    my( $self, $conn, $auth, $org, $start_date, $end_date ) = @_;
-    my $e = new_editor(authtoken=>$auth);
-    return $e->event unless $e->checkauth;
-    return $e->event unless $e->allowed('VIEW_TRANSACTION', $org);
-    my $data = $U->storagereq(
-        'open-ils.storage.money.org_unit.user_payments.atomic',
-        $org, $start_date, $end_date );
-    for(@$data) {
-        $_->usr->card(
-            $e->retrieve_actor_card($_->usr->card)->barcode);
-        $_->usr->home_ou(
-            $e->retrieve_actor_org_unit($_->usr->home_ou)->shortname);
-    }
-    return $data;
+       my( $self, $conn, $auth, $org, $start_date, $end_date ) = @_;
+       my $e = new_editor(authtoken=>$auth);
+       return $e->event unless $e->checkauth;
+       return $e->event unless $e->allowed('VIEW_TRANSACTION', $org);
+       my $data = $U->storagereq(
+               'open-ils.storage.money.org_unit.user_payments.atomic',
+               $org, $start_date, $end_date );
+       for(@$data) {
+               $_->usr->card(
+                       $e->retrieve_actor_card($_->usr->card)->barcode);
+               $_->usr->home_ou(
+                       $e->retrieve_actor_org_unit($_->usr->home_ou)->shortname);
+       }
+       return $data;
 }