X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_svc.pm;h=0c17c970674b810acf245f35d6103c1b6a97fcf1;hp=118ab79d20d419be6979de3cef99be98571372e9;hb=049da6c538c952f938af4544a07c688b89c26a17;hpb=b0511ff939fe1622503ac8e53333fabb1ad9bd37 diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm index 118ab79d2..0c17c9706 100644 --- a/FS/FS/cust_svc.pm +++ b/FS/FS/cust_svc.pm @@ -547,48 +547,22 @@ Meaningless for records where B is not "svc_acct". sub get_session_history { my($self, $start, $end, $attrib) = @_; - my $username = $self->svc_x->username; + #$attrib ??? - 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 @sessions = (); foreach my $part_export ( @part_export ) { - - my $dbh = DBI->connect( map { $part_export->option($_) } - qw(datasrc username password) ) - or die "can't connect to sqlradius database: ". $DBI::errstr; - - #select a unix time conversion function based on database type - my $str2time; - if ( $dbh->{Driver}->{Name} =~ /^mysql(PP)?$/ ) { - $str2time = 'UNIX_TIMESTAMP('; - } elsif ( $dbh->{Driver}->{Name} eq 'Pg' ) { - $str2time = 'EXTRACT( EPOCH FROM '; - } else { - warn "warning: unknown database type ". $dbh->{Driver}->{Name}. - "; guessing how to convert to UNIX timestamps"; - $str2time = 'extract(epoch from '; - } - - my @fields = qw( acctstarttime acctstoptime acctsessiontime - acctinputoctets acctoutputoctets framedipaddress ); - - my $sth = $dbh->prepare('SELECT '. join(', ', @fields). - " FROM radacct - WHERE UserName = ? - AND $str2time AcctStopTime ) >= ? - AND $str2time AcctStopTime ) <= ? - ORDER BY AcctStartTime DESC - ") or die $dbh->errstr; - $sth->execute($username, $start, $end) or die $sth->errstr; - - push @sessions, map { { %$_ } } @{ $sth->fetchall_arrayref({}) }; - + push @sessions, $part_export->usage_sessions( $self->svc_x, $start, $end ); } - \@sessions + + \@sessions; }