X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fsvc_phone.cgi;h=416f1384168453442bd280207fe91251dcb9bbb9;hb=35ac5f08fc816cd7d79dc9a861652537061aed03;hp=ebde4222850685c7e046d195f2d8e121fa2f13f4;hpb=9e570867c27b5336f4fa701c84b70fd65791f87c;p=freeside.git
diff --git a/httemplate/view/svc_phone.cgi b/httemplate/view/svc_phone.cgi
index ebde42228..416f13841 100644
--- a/httemplate/view/svc_phone.cgi
+++ b/httemplate/view/svc_phone.cgi
@@ -1,26 +1,82 @@
-<% include('elements/svc_Common.html',
+<& elements/svc_Common.html,
'table' => 'svc_phone',
'fields' => \@fields,
- 'labels' => {
- 'countrycode' => 'Country code',
- 'phonenum' => 'Phone number',
- 'domain' => 'Domain',
- 'pbx_title' => 'PBX',
- 'sip_password' => 'SIP password',
- 'pin' => 'PIN',
- 'phone_name' => 'Name',
- },
+ 'labels' => \%labels,
'html_foot' => $html_foot,
- )
-%>
+&>
<%init>
my $conf = new FS::Conf;
my $countrydefault = $conf->config('countrydefault') || 'US';
-my @fields = qw( countrycode phonenum );
+my $fields = FS::svc_phone->table_info->{'fields'};
+my %labels = map { $_ => ( ref($fields->{$_})
+ ? $fields->{$_}{'label'}
+ : $fields->{$_}
+ );
+ } keys %$fields;
+
+my @fields = qw( countrycode phonenum sim_imsi );
push @fields, 'domain' if $conf->exists('svc_phone-domain');
-push @fields, qw( pbx_title sip_password pin phone_name );
+
+$labels{forward_svcnum} = mt('Route to service');
+push @fields, { field => 'forward_svcnum',
+ link => [ $p.'view/cust_svc.cgi?', 'forward_svcnum' ],
+ value_callback => sub {
+ my $self = shift;
+ if ($self->forward_svcnum) {
+ my $cust_svc = FS::cust_svc->by_key($self->forward_svcnum);
+ if ( $cust_svc ) {
+ return $cust_svc->svc_x->label;
+ }
+ }
+ '';
+ },
+ };
+
+
+push @fields, qw( pbx_title );
+$labels{pbx_title} = 'PBX';
+
+if ( $conf->exists('showpasswords') ) {
+ push @fields, qw( sip_password );
+} else {
+ push @fields, { 'field' => 'sip_password', #'_HIDDEN_sip_password',
+ 'type' => 'fixed',
+ 'value' => '('. mt('hidden') .')',
+ };
+}
+
+push @fields, qw( pin phone_name forwarddst email );
+
+push @fields, { field => 'sms_carrierid',
+ #type=>'cdr_carrier',
+ value_callback => sub {
+ $_[0]->sms_carriername,
+ },
+ },
+ 'sms_account',
+ 'max_simultaneous',
+;
+
+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',
+ ;
+}
+
+$labels{circuit_label} = mt('Circuit');
+push @fields, { field => 'circuit_label',
+ link => [ $p.'view/svc_circuit.cgi?', 'circuit_svcnum' ]
+ };
+
+push @fields, 'sip_server';
my $html_foot = sub {
my $svc_phone = shift;
@@ -29,18 +85,16 @@ my $html_foot = sub {
# E911 Info
###
- my $loc = $svc_phone->cust_location_or_main;
-
my $e911 =
- 'E911 Information'.
+ emt('E911 Information').
&ntable("#cccccc"). '
'. ntable("#cccccc",2).
- ' |
Location | '.
+ '
'.emt('Location').' | '.
''.
- $loc->location_label( 'join_string' => ' ',
- 'double_space' => ' ',
- 'escape_function' => \&encode_entities,
- 'countrydefault' => $countrydefault,
- ).
+ $svc_phone->location_label( 'join_string' => ' ',
+ 'double_space' => ' ',
+ 'escape_function' => \&encode_entities,
+ 'countrydefault' => $countrydefault,
+ ).
' |
'.
''.
'
'
@@ -49,69 +103,13 @@ my $html_foot = sub {
###
# Devices
###
+ #remove this when svc_phone isa device_Common, as elements/svc_Common will display it
+ my $devices = include('/view/elements/svc_devices.html',
+ 'svc_x' => $svc_phone,
+ 'table' => 'phone_device',
+ );
- 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 .= '
';
- }
+ my $status = include('/view/elements/svc_export_status.html', $svc_phone );
##
# CDR links
@@ -120,21 +118,40 @@ my $html_foot = sub {
tie my %what, 'Tie::IxHash',
'pending' => 'NULL',
'billed' => 'done',
+ 'skipped' => 'failed',
;
- #XXX src & charged party (& default prefix) as per voip_cdr.pm
- #XXX handle toll free too
-
my $number = $svc_phone->phonenum;
$number = $svc_phone->countrycode. $number
unless $svc_phone->countrycode eq '1';
- #my @links = map {
- # qq().
- # "View $_ CDRs";
- #} keys(%what);
+ #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().
+ qq().
"View $_ CDRs";
} keys(%what);
@@ -146,7 +163,8 @@ my $html_foot = sub {
###
$e911.
- $devices.
+ #$devices.
+ $status.
join(' | ', @links ). '
'.
join(' | ', @ilinks). '
';