report value passed for illegal action pseudo-field
[freeside.git] / FS / FS / cust_refund.pm
index 3af8305..d60c010 100644 (file)
@@ -47,7 +47,8 @@ inherits from FS::Record.  The following fields are currently supported:
 =item _date - specified as a UNIX timestamp; see L<perlfunc/"time">.  Also see
 L<Time::Local> and L<Date::Parse> for conversion functions.
 
-=item payby - `CARD' (credit cards), `BILL' (billing), or `COMP' (free)
+=item payby - `CARD' (credit cards), `CHEK' (electronic check/ACH),
+`LECB' (Phone bill billing), `BILL' (billing), or `COMP' (free)
 
 =item payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)
 
@@ -96,7 +97,7 @@ sub insert {
   my $dbh = dbh;
 
   if ( $self->crednum ) {
-    my $cust_credit = qsearchs('cust_bill', { 'invnum' => $self->invnum } )
+    my $cust_credit = qsearchs('cust_credit', { 'crednum' => $self->crednum } )
       or do {
         $dbh->rollback if $oldAutoCommit;
         return "Unknown cust_credit.crednum: ". $self->crednum;
@@ -234,7 +235,7 @@ sub check {
     unless $self->crednum 
            || qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
 
-  $self->payby =~ /^(CARD|BILL|COMP)$/ or return "Illegal payby";
+  $self->payby =~ /^(CARD|CHEK|LECB|BILL|COMP)$/ or return "Illegal payby";
   $self->payby($1);
 
   #false laziness with cust_pay::check
@@ -259,18 +260,30 @@ sub check {
 
   $self->otaker(getotaker);
 
-  ''; #no error
+  $self->SUPER::check;
 }
 
-=back
+=item payinfo_masked
+
+Returns a "masked" payinfo field with all but the last four characters replaced
+by 'x'es.  Useful for displaying credit cards.
 
-=head1 VERSION
+=cut
 
-$Id: cust_refund.pm,v 1.17 2002-02-19 03:15:11 ivan Exp $
+
+sub payinfo_masked {
+  my $self = shift;
+  my $payinfo = $self->payinfo;
+  'x'x(length($payinfo)-4). substr($payinfo,(length($payinfo)-4));
+}
+
+
+=back
 
 =head1 BUGS
 
-Delete and replace methods.
+Delete and replace methods.  payinfo_masked false laziness with cust_main.pm
+and cust_pay.pm
 
 =head1 SEE ALSO