X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=site_perl%2Fcust_svc.pm;h=ef93f86da1aff14b7f3e0bdd0111e046a465a4a2;hb=dbc31295b1b0b442e6e5cfc6cf64123ef1141c31;hp=1d5051b1fe5ad3423e72fd69c65cc2954dcfd1ca;hpb=762e8ec0ead5dc8c8978d93695adbcc1265ca83a;p=freeside.git diff --git a/site_perl/cust_svc.pm b/site_perl/cust_svc.pm index 1d5051b1f..ef93f86da 100644 --- a/site_perl/cust_svc.pm +++ b/site_perl/cust_svc.pm @@ -2,8 +2,15 @@ package FS::cust_svc; 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); @@ -26,6 +33,8 @@ FS::cust_svc - Object method for cust_svc objects $error = $record->check; + ($label, $value) = $record->label; + =head1 DESCRIPTION An FS::cust_svc represents a service. FS::cust_svc inherits from FS::Record. @@ -140,6 +149,38 @@ sub check { ''; #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 @@ -147,7 +188,7 @@ sub check { 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 @@ -162,6 +203,17 @@ no TableUtil, no FS::Lock ivan@sisd.com 98-mar-7 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;