use FS::part_pkg;
use FS::part_bill_event;
use FS::cust_bill_event;
+use FS::Msgcat qw(gettext);
@ISA = qw( FS::Record );
my $error = $self->SUPER::insert;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
- return "inserting cust_main record (transaction rolled back): $error";
+ #return "inserting cust_main record (transaction rolled back): $error";
+ return $error;
}
if ( @param ) { # CUST_PKG_HASHREF
$error = $svc_something->insert;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
- return "inserting svc_ (transaction rolled back): $error";
+ #return "inserting svc_ (transaction rolled back): $error";
+ return $error;
}
}
}
my $payinfo = $self->payinfo;
$payinfo =~ s/\D//g;
$payinfo =~ /^(\d{13,16})$/
- or return "Illegal credit card number: ". $self->payinfo;
+ or return gettext('invalid_card'); # . ": ". $self->payinfo;
$payinfo = $1;
$self->payinfo($payinfo);
validate($payinfo)
- or return "Illegal credit card number: ". $self->payinfo;
- return "Unknown card type" if cardtype($self->payinfo) eq "Unknown";
+ or return gettext('invalid_card'); # . ": ". $self->payinfo;
+ return gettext('unknown_card_type')
+ if cardtype($self->payinfo) eq "Unknown";
} elsif ( $self->payby eq 'BILL' ) {
} else {
$self->paydate =~ /^(\d{1,2})[\/\-](\d{2}(\d{2})?)$/
or return "Illegal expiration date: ". $self->paydate;
- if ( length($2) == 4 ) {
- $self->paydate("$2-$1-01");
- } else {
- $self->paydate("20$2-$1-01");
- }
+ my $y = length($2) == 4 ? $2 : "20$2";
+ $self->paydate("$y-$1-01");
+ my($nowm,$nowy)=(localtime(time))[4,5]; $nowm++; $nowy+=1900;
+ return gettext('expired_card') if $y<$nowy || ( $y==$nowy && $1<$nowm );
}
- if ( $self->payname eq '' ) {
+ if ( $self->payname eq '' &&
+ ( ! $conf->exists('require_cardname') || $self->payby ne 'CARD' ) ) {
$self->payname( $self->first. " ". $self->getfield('last') );
} else {
$self->payname =~ /^([\w \,\.\-\']+)$/
- or return "Illegal billing name: ". $self->payname;
+ or return gettext('illegal_name'). " payname: ". $self->payname;
$self->payname($1);
}
sub agent {
my $self = shift;
- qsearchs( 'agent', { 'agent' => $self->agentnum } );
+ qsearchs( 'agent', { 'agentnum' => $self->agentnum } );
}
=item bill OPTIONS
qsearch('part_bill_event', { 'payby' => $self->payby,
'disabled' => '', } )
) {
+
+ last unless $cust_bill->owed > 0; #don't run subsequent events if owed=0
+
warn "calling invoice event (". $part_bill_event->eventcode. ")\n"
if $Debug;
my $cust_main = $self; #for callback