move credit card transaction results out of paybatch and into real fields, #18548
[freeside.git] / FS / FS / cust_refund.pm
index 6d08c86..45a170b 100644 (file)
@@ -7,6 +7,7 @@ use vars qw( @encrypted_fields );
 use Business::CreditCard;
 use FS::UID qw(getotaker);
 use FS::Record qw( qsearch qsearchs dbh );
+use FS::CurrentUser;
 use FS::cust_credit;
 use FS::cust_credit_refund;
 use FS::cust_pay_refund;
@@ -86,6 +87,11 @@ order taker (see L<FS::access_user>
 
 books closed flag, empty or `Y'
 
+=item gatewaynum, processor, auth, order_number
+
+Same as for L<FS::cust_pay>, but specifically the result of realtime 
+authorization of the refund.
+
 =back
 
 =head1 METHODS
@@ -237,12 +243,17 @@ sub delete {
 
 =item replace OLD_RECORD
 
-Modifying a refund?  Well, don't say I didn't warn you.
+You can, but probably shouldn't modify refunds... 
+
+Replaces the OLD_RECORD with this one in the database, or, if OLD_RECORD is not
+supplied, replaces this record.  If there is an error, returns the error,
+otherwise returns false.
 
 =cut
 
 sub replace {
   my $self = shift;
+  return "Can't modify closed refund" if $self->closed =~ /^Y/i;
   $self->SUPER::replace(@_);
 }
 
@@ -256,7 +267,7 @@ returns the error, otherwise returns false.  Called by the insert method.
 sub check {
   my $self = shift;
 
-  $self->otaker(getotaker) unless $self->otaker;
+  $self->usernum($FS::CurrentUser::CurrentUser->usernum) unless $self->usernum;
 
   my $error =
     $self->ut_numbern('refundnum')
@@ -343,7 +354,7 @@ Returns an SQL fragment to retreive the unapplied amount.
 =cut 
 
 sub unapplied_sql {
-  my ($class, $start, $end) = shift;
+  my ($class, $start, $end) = @_;
   my $credit_start = $start ? "AND cust_credit_refund._date <= $start" : '';
   my $credit_end   = $end   ? "AND cust_credit_refund._date > $end"   : '';
   my $pay_start    = $start ? "AND cust_pay_refund._date <= $start"    : '';