& elements/svc_Common.html,
'table' => 'svc_phone',
'fields' => \@fields,
'labels' => \%labels,
'html_foot' => $html_foot,
&>
<%init>
my $conf = new FS::Conf;
my $countrydefault = $conf->config('countrydefault') || 'US';
my $fields = FS::svc_phone->table_info->{'fields'};
my %labels = map { $_ => ( ref($fields->{$_})
? $fields->{$_}{'label'}
: $fields->{$_}
);
} keys %$fields;
my @fields = qw( countrycode phonenum );
push @fields, 'domain' if $conf->exists('svc_phone-domain');
push @fields, qw( pbx_title sip_password pin phone_name forwarddst email );
if ( $conf->exists('svc_phone-lnp') ) {
push @fields, 'lnp_status',
'lnp_reject_reason',
{ field => 'portable', type => 'checkbox', },
'lrn',
{ field => 'lnp_desired_due_date', type => 'date', },
{ field => 'lnp_due_date', type => 'date', },
'lnp_other_provider',
'lnp_other_provider_account';
}
my $html_foot = sub {
my $svc_phone = shift;
###
# E911 Info
###
my $e911 =
emt('E911 Information').
&ntable("#cccccc"). '
'. ntable("#cccccc",2).
' |
'.emt('Location').' | '.
''.
$svc_phone->location_label( 'join_string' => ' ',
'double_space' => ' ',
'escape_function' => \&encode_entities,
'countrydefault' => $countrydefault,
).
' |
'.
''.
'
'
;
###
# Devices
###
my $devices = '';
my $sth = dbh->prepare("SELECT COUNT(*) FROM part_device") #WHERE disabled = '' OR disabled IS NULL;");
or die dbh->errstr;
$sth->execute or die $sth->errstr;
my $num_part_device = $sth->fetchrow_arrayref->[0];
my @phone_device = $svc_phone->phone_device;
if ( @phone_device || $num_part_device ) {
my $svcnum = $svc_phone->svcnum;
$devices .=
qq[Devices (Add device)
];
if ( @phone_device ) {
$devices .= qq!
!;
$devices .=
include('/elements/table-grid.html').
''.
'Type | '.
'MAC Addr | '.
' | '.
' | '.
'
';
my $bgcolor1 = '#eeeeee';
my $bgcolor2 = '#ffffff';
my $bgcolor = '';
foreach my $phone_device ( @phone_device ) {
if ( $bgcolor eq $bgcolor1 ) {
$bgcolor = $bgcolor2;
} else {
$bgcolor = $bgcolor1;
}
my $td = qq();
my $devicenum = $phone_device->devicenum;
my $export_links = join( ' ', @{ $phone_device->export_links } );
$devices .= ' | '.
$td. $phone_device->part_device->devicename. ''.
$td. $phone_device->mac_addr. ''.
$td. $export_links. ''.
"$td( ".
qq(edit | ).
qq(delete).
' )'.
'
';
}
$devices .= '
';
}
$devices .= '
';
}
##
# CDR links
##
tie my %what, 'Tie::IxHash',
'pending' => 'NULL',
'billed' => 'done',
;
my $number = $svc_phone->phonenum;
$number = $svc_phone->countrycode. $number
unless $svc_phone->countrycode eq '1';
#src & charged party as per voip_cdr.pm
#XXX handle toll free too
my $search = "charged_party_or_src=";
my $cust_pkg = $svc_phone->cust_svc->cust_pkg;
if ( $cust_pkg ) {
#XXX handle voip_inbound too
my @part_pkg = grep { $_->plan eq 'voip_cdr' }
$cust_pkg->part_pkg->self_and_bill_linked;
foreach my $prefix (grep $_, map $_->option('default_prefix'), @part_pkg) {
$number .= ",$prefix$number";
}
$search = 'charged_party='
unless !@part_pkg || grep { ! $_->option('disable_src',1) } @part_pkg;
}
$search .= $number;
my @links = map {
qq().
"View $_ CDRs";
} keys(%what);
my @ilinks = ( qq().
'View incoming CDRs' );
###
# concatenate & return
###
$e911.
$devices.
join(' | ', @links ). '
'.
join(' | ', @ilinks). '
';
};
%init>