#not needed in 5.004 #srand($$|time);
+sub _cache {
+ my $self = shift;
+ my ( $hashref, $cache ) = @_;
+ if ( $hashref->{'svc_acct_svcnum'} ) {
+ $self->{'_domsvc'} = FS::svc_domain->new( {
+ 'svcnum' => $hashref->{'domsvc'},
+ 'domain' => $hashref->{'svc_acct_domain'},
+ 'catchall' => $hashref->{'svc_acct_catchall'},
+ } );
+ }
+}
+
=head1 NAME
FS::svc_acct - Object methods for svc_acct records
foreach my $cust_main_invoice (
qsearch( 'cust_main_invoice', { 'dest' => $self->svcnum } )
) {
- #next unless defined; #wtf is up with qsearch?
- warn $cust_main_invoice;
- next unless defined $cust_main_invoice;
+ unless ( defined($cust_main_invoice) ) {
+ warn "WARNING: something's wrong with qsearch";
+ next;
+ }
my %hash = $cust_main_invoice->hash;
$hash{'dest'} = $self->email;
my $new = new FS::cust_main_invoice \%hash;
return "Username in use"
if $old->username ne $new->username &&
- qsearchs( 'svc_acct', { 'username' => $new->username } );
-
- return "Can't change uid!" if $old->uid != $new->uid;
+ qsearchs( 'svc_acct', { 'username' => $new->username,
+ 'domsvc' => $new->domsvc,
+ } );
+ {
+ no warnings 'numeric';
+ return "Can't change uid!" if $old->uid != $new->uid;
+ }
return "can't change username using Cyrus"
if $cyrus_server && $old->username ne $new->username;
sub domain {
my $self = shift;
if ( $self->domsvc ) {
- my $svc_domain = qsearchs( 'svc_domain', { 'svcnum' => $self->domsvc } )
+ #$self->svc_domain->domain;
+ my $svc_domain = $self->svc_domain
or die "no svc_domain.svcnum for svc_acct.domsvc ". $self->domsvc;
$svc_domain->domain;
} else {
}
}
+=item svc_domain
+
+Returns the FS::svc_domain record for this account's domain (see
+L<FS::svc_domain>.
+
+=cut
+
+sub svc_domain {
+ my $self = shift;
+ $self->{'_domsvc'}
+ ? $self->{'_domsvc'}
+ : qsearchs( 'svc_domain', { 'svcnum' => $self->domsvc } );
+}
+
=item email
Returns an email address associated with the account.
=head1 VERSION
-$Id: svc_acct.pm,v 1.52 2001-10-24 15:29:30 ivan Exp $
+$Id: svc_acct.pm,v 1.57 2001-12-19 14:30:12 ivan Exp $
=head1 BUGS