use strict;
use vars qw(@ISA);
+use Carp;
use Exporter;
use FS::Record qw(fields qsearchs);
+use FS::cust_pkg;
+use FS::part_pkg;
+use FS::part_svc;
+use FS::svc_acct;
+use FS::svc_acct_sm;
+use FS::svc_domain;
@ISA = qw(FS::Record Exporter);
$error = $record->check;
+ ($label, $value) = $record->label;
+
=head1 DESCRIPTION
An FS::cust_svc represents a service. FS::cust_svc inherits from FS::Record.
''; #no error
}
+=item label
+
+Returns a list consisting of:
+- The name of this service (from part_svc)
+- A meaningful identifier (username, domain, or mail alias)
+- The table name (i.e. svc_domain) for this service
+
+=cut
+
+sub label {
+ my($self)=@_;
+ my($part_svc) = qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } );
+ my($svcdb) = $part_svc->svcdb;
+ my($svc_x) = qsearchs( $svcdb, { 'svcnum' => $self->svcnum } );
+ my($svc) = $part_svc->svc;
+ my($tag);
+ if ( $svcdb eq 'svc_acct' ) {
+ $tag = $svc_x->getfield('username');
+ } elsif ( $svcdb eq 'svc_acct_sm' ) {
+ my $domuser = $svc_x->domuser eq '*' ? '(anything)' : $svc_x->domuser;
+ my $svc_domain = qsearchs ( 'svc_domain', { 'svcnum' => $svc_x->domsvc } );
+ my $domain = $svc_domain->domain;
+ $tag = "$domuser\@$domain";
+ } elsif ( $svcdb eq 'svc_domain' ) {
+ return $svc, $svc_x->getfield('domain');
+ } else {
+ carp "warning: asked for label of unsupported svcdb; using svcnum";
+ $tag = $svc_x->getfield('svcnum');
+ }
+ $svc, $tag, $svcdb;
+}
+
=back
=head1 BUGS
Behaviour of changing the svcpart of cust_svc records is undefined and should
possibly be prohibited, and pkg_svc records are not checked.
-pkg_svc records are not checket in general (here).
+pkg_svc records are not checked in general (here).
=head1 SEE ALSO
pod ivan@sisd.com 98-sep-21
+$Log: cust_svc.pm,v $
+Revision 1.4 1998-11-12 07:58:15 ivan
+added svcdb to label
+
+Revision 1.3 1998/11/12 03:45:38 ivan
+use FS::table_name for all tables qsearch()'ed
+
+Revision 1.2 1998/11/12 03:32:46 ivan
+added label method
+
+
=cut
1;