package FS::cust_main_invoice;
+use base qw( FS::Record );
use strict;
-use vars qw(@ISA $conf);
-use Exporter;
use FS::Record qw( qsearchs );
use FS::Conf;
-use FS::cust_main;
use FS::svc_acct;
use FS::Msgcat qw(gettext);
-@ISA = qw( FS::Record );
-
=head1 NAME
FS::cust_main_invoice - Object methods for cust_main_invoice records
+=head1 ANNOUNCEMENT
+
+This is deprecated in version 4. Instead, contacts with the "invoice_dest"
+attribute should be used.
+
=head1 SYNOPSIS
use FS::cust_main_invoice;
Checks all fields to make sure this is a valid invoice destination. If there is
an error, returns the error, otherwise returns false. Called by the insert
-and repalce methods.
+and replace methods.
=cut
;
return $error if $error;
- return "Unknown customer"
- unless qsearchs('cust_main',{ 'custnum' => $self->custnum });
-
$self->SUPER::check;
}
my $error = $self->ut_text('dest');
return $error if $error;
+ my $conf = new FS::Conf;
+
if ( $self->dest =~ /^(POST|FAX)$/ ) {
#contemplate our navel
} elsif ( $self->dest =~ /^(\d+)$/ ) {
return "Unknown local account (specified by svcnum: ". $self->dest. ")"
unless qsearchs( 'svc_acct', { 'svcnum' => $self->dest } );
- } elsif ( $self->dest =~ /^([\w\.\-\&\+]+)\@(([\w\.\-]+\.)+\w+)$/ ) {
+ } elsif ( $conf->exists('emailinvoice-apostrophe')
+ ? $self->dest =~ /^\s*([\w\.\-\&\+\']+)\@(([\w\.\-]+\.)+\w+)\s*$/
+ : $self->dest =~ /^\s*([\w\.\-\&\+]+)\@(([\w\.\-]+\.)+\w+)\s*$/ ){
my($user, $domain) = ($1, $2);
$self->dest("$1\@$2");
} else {
- return gettext("illegal_email_invoice_address");
+ return gettext("illegal_email_invoice_address"). ': '. $self->dest;
}
''; #no error
}
}
+=item cust_main
+
+Returns the parent customer object (see L<FS::cust_main>).
+
=back
=head1 BUGS