X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_main_invoice.pm;h=31a07bcfff4fe7c9598200ff7885b000e30a1fa7;hp=71148cab003973c551753c978027ee2bda86bb9e;hb=3adb46fccf9f631e188ea5383bd147b340477639;hpb=92e4952763f6c4ab4fd9a773315653b389ba872f diff --git a/FS/FS/cust_main_invoice.pm b/FS/FS/cust_main_invoice.pm index 71148cab0..31a07bcff 100644 --- a/FS/FS/cust_main_invoice.pm +++ b/FS/FS/cust_main_invoice.pm @@ -1,20 +1,21 @@ 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::Record qw( qsearchs dbh ); 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; @@ -104,9 +105,6 @@ sub check { ; return $error if $error; - return "Unknown customer" - unless qsearchs('cust_main',{ 'custnum' => $self->custnum }); - $self->SUPER::check; } @@ -127,12 +125,16 @@ sub checkdest { 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 =~ /^\s*([\w\.\-\&\+]+)\@(([\w\.\-]+\.)+\w+)\s*$/ ) { + } 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 { @@ -163,14 +165,23 @@ sub address { Returns the parent customer object (see L). +=back + =cut -sub cust_main { - my $self = shift; - qsearchs( 'cust_main', { 'custnum' => $self->custnum } ); -} +sub _upgrade_schema { + my ($class, %opts) = @_; -=back + # delete records where custnum points to a nonexistent customer + my $sql = 'DELETE FROM cust_main_invoice + WHERE NOT EXISTS ( + SELECT 1 FROM cust_main WHERE cust_main.custnum = cust_main_invoice.custnum + )'; + my $sth = dbh->prepare($sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + + ''; +} =head1 BUGS