=item payby - `CARD' (credit cards), `BILL' (billing), or `COMP' (free)
-=item payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username)
+=item payinfo - card number, check #, or comp issuer (4-8 lowercase alphanumerics; think username), respectively
=item paybatch - text field for tracking card processing
+=item closed - books closed flag, empty or `Y'
+
=back
=head1 METHODS
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- my $cust_main = qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
- my $old_balance = $cust_main->balance;
-
- my $error = $self->check;
- return $error if $error;
-
if ( $self->invnum ) {
my $cust_bill = qsearchs('cust_bill', { 'invnum' => $self->invnum } )
or do {
$self->custnum($cust_bill->custnum );
}
+ my $cust_main = qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
+ my $old_balance = $cust_main->balance;
+
+ my $error = $self->check;
+ return $error if $error;
+
$error = $self->SUPER::insert;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
=cut
sub delete {
- return "Can't (yet?) delete cust_pay records!";
+ my $self = shift;
+ return "Can't delete closed payment" if $self->closed =~ /^Y/i;
+ $self->SUPER::delete(@_);
}
=item replace OLD_RECORD
|| $self->ut_money('paid')
|| $self->ut_numbern('_date')
|| $self->ut_textn('paybatch')
+ || $self->ut_enum('closed', [ '', 'Y' ])
;
return $error if $error;
+ return "paid must be > 0 " if $self->paid <= 0;
+
return "unknown cust_main.custnum: ". $self->custnum
unless $self->invnum
|| qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
$self->payby =~ /^(CARD|BILL|COMP)$/ or return "Illegal payby";
$self->payby($1);
+ #false laziness with cust_refund::check
if ( $self->payby eq 'CARD' ) {
my $payinfo = $self->payinfo;
$payinfo =~ s/\D//g;
=head1 VERSION
-$Id: cust_pay.pm,v 1.8 2001-10-09 23:10:16 ivan Exp $
+$Id: cust_pay.pm,v 1.14 2002-01-28 06:57:23 ivan Exp $
=head1 BUGS