package FS::cust_pay;
use strict;
-use vars qw( @ISA $conf $unsuspendauto $smtpmachine $invoice_from );
+use vars qw( @ISA $conf $unsuspendauto );
use Date::Format;
-use Mail::Header;
-use Mail::Internet 1.44;
use Business::CreditCard;
use FS::UID qw( dbh );
use FS::Record qw( dbh qsearch qsearchs dbh );
+use FS::Misc qw(send_email);
use FS::cust_bill;
use FS::cust_bill_pay;
use FS::cust_main;
@ISA = qw( FS::Record );
#ask FS::UID to run this stuff for us later
-$FS::UID::callback{'FS::cust_pay'} = sub {
-
+FS::UID->install_callback( sub {
$conf = new FS::Conf;
$unsuspendauto = $conf->exists('unsuspendauto');
- $smtpmachine = $conf->config('smtpmachine');
- $invoice_from = $conf->config('invoice_from');
-
-};
+} );
=head1 NAME
=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, check #, or comp issuer (4-8 lowercase alphanumerics; think username), respectively
if ( $conf->config('deletepayments') ne '' ) {
my $cust_main = qsearchs('cust_main',{ 'custnum' => $self->custnum });
- #false laziness w/FS::cust_bill::send & fs_signup_server
- $ENV{MAILADDRESS} = $invoice_from; #??? well as good as any
- my $header = new Mail::Header ( [
- "From: $invoice_from",
- "To: ". $conf->config('deletepayments'),
- "Sender: $invoice_from",
- "Reply-To: $invoice_from",
- "Date: ". time2str("%a, %d %b %Y %X %z", time),
- "Subject: FREESIDE NOTIFICATION: Payment deleted",
- ] );
- my $message = new Mail::Internet (
- 'Header' => $header,
- 'Body' => [
+
+ my $error = send_email(
+ 'from' => $conf->config('invoice_from'), #??? well as good as any
+ 'to' => $conf->config('deletepayments'),
+ 'subject' => 'FREESIDE NOTIFICATION: Payment deleted',
+ 'body' => [
"This is an automatic message from your Freeside installation\n",
"informing you that the following payment has been deleted:\n",
"\n",
'paybatch: '. $self->paybatch. "\n",
],
);
- $!=0;
- $message->smtpsend( Host => $smtpmachine )
- or $message->smtpsend( Host => $smtpmachine, Debug => 1 )
- or do {
- $dbh->rollback if $oldAutoCommit;
- return "(customer # ". $self->custnum.
- ") can't send payment deletion email to ".
- $conf->config('deletepayments').
- " via server $smtpmachine with SMTP: $!";
- };
+
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "can't send payment deletion notification: $error";
+ }
+
}
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
$self->_date(time) unless $self->_date;
- $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_refund::check
return $error if $error;
}
- ''; #no error
-
+ $self->SUPER::check;
}
=item cust_bill_pay
sprintf("%.2f", $amount );
}
+=item cust_main
+
+Returns the parent customer object (see L<FS::cust_main>).
+
+=cut
+
+sub cust_main {
+ my $self = shift;
+ qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
+}
+
+
=back
=head1 VERSION
-$Id: cust_pay.pm,v 1.21 2002-06-04 14:35:52 ivan Exp $
+$Id: cust_pay.pm,v 1.26 2003-09-10 10:54:46 ivan Exp $
=head1 BUGS