package FS::svc_pbx;
+use base qw( FS::svc_External_Common );
use strict;
-use base qw( FS::svc_External_Common );
+use Tie::IxHash;
use FS::Record qw( qsearch qsearchs dbh );
use FS::Conf;
use FS::cust_svc;
sub table { 'svc_pbx'; }
sub table_info {
+
+ tie my %fields, 'Tie::IxHash',
+ 'svcnum' => 'PBX',
+ 'id' => 'PBX/Tenant ID',
+ 'title' => 'Name',
+ 'max_extensions' => 'Maximum number of User Extensions',
+ 'max_simultaneous' => 'Maximum number of simultaneous users',
+ ;
+
{
'name' => 'PBX',
'name_plural' => 'PBXs',
'sorts' => 'svcnum', # optional sort field (or arrayref of sort fields, main first)
'display_weight' => 70,
'cancel_weight' => 90,
- 'fields' => {
- 'id' => 'ID',
- 'title' => 'Name',
- 'max_extensions' => 'Maximum number of User Extensions',
- 'max_simultaneous' => 'Maximum number of simultaneous users',
- },
+ 'fields' => \%fields,
};
}
=item by_svcnum => 1: Select CDRs where the svcnum field matches, instead of
title/charged_party. Normally this field is set after processing.
+=item begin, end: Start and end of date range, as unix timestamp.
+
+=item cdrtypenum: Only return CDRs with this type number.
+
=back
=cut
my @fields = ( 'charged_party' );
$hash{'freesidestatus'} = $options{'status'}
if exists($options{'status'});
-
+
+ if ($options{'cdrtypenum'}) {
+ $hash{'cdrtypenum'} = $options{'cdrtypenum'};
+ }
+
my $for_update = $options{'for_update'} ? 'FOR UPDATE' : '';
if ( $options{'by_svcnum'} ) {