FS::Record );
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;
use FS::cust_main;
@encrypted_fields = ('payinfo');
+sub nohistory_fields { ('payinfo'); }
=head1 NAME
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
=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(@_);
}
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')
=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" : '';