X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_svc.pm;h=b74cfd685d7e7c864782de01b70ddf77d664e410;hb=aecf44ec9118946eebe551fc7144a1d0dcff8de5;hp=139dd9db639bbb96372da780371e9cf652573923;hpb=26c21ea9dbbca328c91ab578c7c7c0c21927244e;p=freeside.git diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm index 139dd9db6..b74cfd685 100644 --- a/FS/FS/cust_svc.pm +++ b/FS/FS/cust_svc.pm @@ -296,6 +296,8 @@ sub label { $tag = $domain->zone; } elsif ( $svcdb eq 'svc_broadband' ) { $tag = $svc_x->ip_addr; + } elsif ( $svcdb eq 'svc_external' ) { + $tag = $svc_x->id. ': '. $svc_x->title; } else { cluck "warning: asked for label of unsupported svcdb; using svcnum"; $tag = $svc_x->getfield('svcnum'); @@ -365,6 +367,8 @@ sub seconds_since_sqlradacct { my $seconds = 0; foreach my $part_export ( @part_export ) { + next if $part_export->option('ignore_accounting'); + my $dbh = DBI->connect( map { $part_export->option($_) } qw(datasrc username password) ) or die "can't connect to sqlradius database: ". $DBI::errstr; @@ -468,16 +472,21 @@ for records where B is not "svc_acct". sub attribute_since_sqlradacct { my($self, $start, $end, $attrib) = @_; - my $username = $self->svc_x->username; + my $svc_x = $self->svc_x; - my @part_export = $self->part_svc->part_export('sqlradius') - or die "no sqlradius export configured for this service type"; + my @part_export = $self->part_svc->part_export('sqlradius'); + push @part_export, $self->part_svc->part_export('sqlradius_withdomain'); + die "no sqlradius or sqlradius_withdomain export configured for this". + "service type" + unless @part_export; #or return undef; my $sum = 0; foreach my $part_export ( @part_export ) { + next if $part_export->option('ignore_accounting'); + my $dbh = DBI->connect( map { $part_export->option($_) } qw(datasrc username password) ) or die "can't connect to sqlradius database: ". $DBI::errstr; @@ -494,6 +503,15 @@ sub attribute_since_sqlradacct { $str2time = 'extract(epoch from '; } + my $username; + if ( $part_export->exporttype eq 'sqlradius' ) { + $username = $svc_x->username; + } elsif ( $part_export->exporttype eq 'sqlradius_withdomain' ) { + $username = $svc_x->email; + } else { + die 'unknown exporttype '. $part_export->exporttype; + } + my $sth = $dbh->prepare("SELECT SUM($attrib) FROM radacct WHERE UserName = ?