X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_svc.pm;h=ce2b969f9ce55e3018430e32b938ca846da0dd50;hp=6adb571d36d6343656e2d1c62fa83126e461869c;hb=d20581bcbf2809d5c2969d773b16a0c8714a6dec;hpb=31596791eb870db59a8861afd77ce868eae12c92 diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm index 6adb571d3..ce2b969f9 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'); @@ -353,10 +355,13 @@ for records where B is not "svc_acct". sub seconds_since_sqlradacct { my($self, $start, $end) = @_; - 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 $seconds = 0; @@ -378,6 +383,15 @@ sub seconds_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 $query; #find closed sessions completely within the given range @@ -456,10 +470,13 @@ 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; @@ -482,6 +499,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 = ?