diff --git a/lib/NGCP/Panel/Controller/Lnp.pm b/lib/NGCP/Panel/Controller/Lnp.pm index 33ee1e42b9..e8b2175149 100644 --- a/lib/NGCP/Panel/Controller/Lnp.pm +++ b/lib/NGCP/Panel/Controller/Lnp.pm @@ -44,6 +44,7 @@ sub list :Chained('/') :PathPart('lnp') :CaptureArgs(0) { { name => "id", "search" => 0, "title" => $c->loc("#") }, { name => "number", "search" => 1, "title" => $c->loc("Number") }, { name => "routing_number", "search" => 0, "title" => $c->loc("Routing Number") }, + { name => "type", "search" => 0, "title" => $c->loc("Type") }, { name => "lnp_provider.name", "search" => 1, "title" => $c->loc("Carrier") }, { name => "start", "search" => 0, "title" => $c->loc("Start Date") }, { name => "end", "search" => 0, "title" => $c->loc("End Date") }, @@ -324,6 +325,7 @@ sub number_edit :Chained('number_base') :PathPart('edit') { $form->values->{end} = undef; } $form->values->{routing_number} = undef unless(length $form->values->{routing_number}); + $form->values->{type} = undef unless(length $form->values->{type}); $c->stash->{number_result}->update($form->values); }); diff --git a/lib/NGCP/Panel/Form/Lnp/Number.pm b/lib/NGCP/Panel/Form/Lnp/Number.pm index 275fab6122..48a90d23bf 100644 --- a/lib/NGCP/Panel/Form/Lnp/Number.pm +++ b/lib/NGCP/Panel/Form/Lnp/Number.pm @@ -40,6 +40,20 @@ has_field 'routing_number' => ( }, ); +has_field 'type' => ( + type => 'Select', + required => 0, + label => 'Type', + options => [ + { label => '', value => '' }, + { label => 'fixed', value => 'fixed' }, + { label => 'mobile', value => 'mobile' }, + ], + element_attr => { + rel => ['tooltip'], + title => ['The optional LNP number type tag, for CDR exports.'] + }, +); has_field 'start' => ( type => '+NGCP::Panel::Field::DatePicker', @@ -69,7 +83,7 @@ has_field 'save' => ( has_block 'fields' => ( tag => 'div', class => [qw/modal-body/], - render_list => [qw/lnp_provider number routing_number start end/], + render_list => [qw/lnp_provider number routing_number type start end/], ); has_block 'actions' => ( diff --git a/lib/NGCP/Panel/Utils/Lnp.pm b/lib/NGCP/Panel/Utils/Lnp.pm index db60d7b692..4adbc47926 100644 --- a/lib/NGCP/Panel/Utils/Lnp.pm +++ b/lib/NGCP/Panel/Utils/Lnp.pm @@ -79,7 +79,7 @@ sub _insert_batch { c => $c, schema => $schema, do_transaction => 0, - query => "INSERT INTO billing.lnp_numbers(lnp_provider_id, number, routing_number, start, end)", + query => "INSERT INTO billing.lnp_numbers(lnp_provider_id, number, routing_number, start, end, type)", data => $numbers, chunk_size => $chunk_size ); @@ -93,7 +93,7 @@ sub upload_csv { # csv bulk upload my $csv = Text::CSV_XS->new({ allow_whitespace => 1, binary => 1, keep_meta_info => 1 }); #my @cols = @{ $c->config->{lnp_csv}->{element_order} }; - my @cols = qw/carrier_name carrier_prefix number routing_number start end authoritative skip_rewrite/; + my @cols = qw/carrier_name carrier_prefix number routing_number start end authoritative skip_rewrite type/; my @fields ; my @fails = (); @@ -132,7 +132,8 @@ sub upload_csv { if($row->{end} && $row->{end} =~ /^\d{4}-\d{2}-\d{2}$/) { $row->{end} .= 'T23:59:59'; } - push @numbers, [$carriers{$k}, $row->{number}, $row->{routing_number}, $row->{start}, $row->{end}]; + $row->{type} ||= undef; + push @numbers, [$carriers{$k}, $row->{number}, $row->{routing_number}, $row->{start}, $row->{end}, $row->{type}]; if($linenum % $chunk_size == 0) { _insert_batch($c, $schema, \@numbers, $chunk_size); @@ -159,7 +160,7 @@ sub create_csv { my($c, $number_rs) = @params{qw/c number_rs/}; $number_rs //= $c->stash->{number_rs} // $c->model('DB')->resultset('lnp_numbers'); #my @cols = @{ $c->config->{lnp_csv}->{element_order} }; - my @cols = qw/carrier_name carrier_prefix number routing_number start end authoritative skip_rewrite/; + my @cols = qw/carrier_name carrier_prefix number routing_number start end authoritative skip_rewrite type/; my $lnp_rs = $number_rs->search_rs( undef,