[freeside-commits] branch master updated. 66fc0c9ba5d3f460a26a51ee72ee25923d644da8
Christopher Burger
burgerc at freeside.biz
Sun Apr 21 13:19:11 PDT 2019
The branch, master has been updated
via 66fc0c9ba5d3f460a26a51ee72ee25923d644da8 (commit)
from 73fc1e4f3a2100fdccbc5eace399b604c5645b5e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 66fc0c9ba5d3f460a26a51ee72ee25923d644da8
Author: Christopher Burger <burgerc at freeside.biz>
Date: Sun Apr 21 16:14:13 2019 -0400
RT# 83039 - only towers with sectors shown on provisioning page when export requires sectors
diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 6fb504f82..61aa12d2b 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -197,6 +197,7 @@ sub _export_insert {
'sector_name' => $sector_name,
'sector_uprate_limit' => $tower_sector->{Hash}->{sector_upratelimit},
'sector_downrate_limit' => $tower_sector->{Hash}->{sector_downratelimit},
+ 'rateplan' => $rateplan_name,
};
my $accesspoint = process_sector($self, $sector_opt);
return $self->api_error if $self->{'__saisei_error'};
@@ -828,6 +829,11 @@ sub process_tower {
sub process_sector {
my ($self, $opt) = @_;
+ if (!$opt->{sector_name} || $opt->{sector_name} eq '_default') {
+ $self->{'__saisei_error'} = "No sector attached to Tower (".$opt->{tower_name}.") for service ".$opt->{'rateplan'}.". Saisei requires a tower sector to be attached to each service that is exported to Saisei.";
+ return { error => $self->api_error, };
+ }
+
if (!$opt->{sector_uprate_limit} || !$opt->{sector_downrate_limit}) {
$self->{'__saisei_error'} = "Could not export sector ".$opt->{tower_name}." because there was no up or down rates attached to the sector. Saisei requires a up and down rate be attached to each sector.";
return { error => $self->api_error, };
@@ -864,6 +870,16 @@ sub process_sector {
return $accesspoint;
}
+=head2 require_tower_and_sector
+
+sets whether the service export requires a sector with it's tower.
+
+=cut
+
+sub require_tower_and_sector {
+ 1;
+}
+
sub process_virtual_ap {
my ($self, $opt) = @_;
diff --git a/httemplate/edit/svc_broadband.cgi b/httemplate/edit/svc_broadband.cgi
index 374af4770..5a3692e14 100644
--- a/httemplate/edit/svc_broadband.cgi
+++ b/httemplate/edit/svc_broadband.cgi
@@ -101,7 +101,21 @@ END
my @fields = (
qw( description speed_down speed_up speed_test_down speed_test_up speed_test_latency),
- { field=>'sectornum', type=>'select-tower_sector', },
+ { field=>'sectornum', type=>'select-tower_sector',
+ include_opt_callback => sub {
+ my $svc_broadband = shift;
+ my $part_svc = $svc_broadband->part_svc;
+ my $sectors_only;
+ foreach ($part_svc->part_export()) {
+ $sectors_only = '1' if $_->can('require_tower_and_sector');
+ }
+ ## incase export requires a sector and service only has tower attached it will not show on edit.
+ my $non_option_label;
+ my $sector = qsearchs({'table' => 'tower_sector', 'hashref' => { 'sectornum' => $svc_broadband->sectornum }, });
+ $non_option_label = $sector->description if $sector;
+ return ('sectorsonly' => $sectors_only, 'non_option_label' => $non_option_label);
+ },
+ },
{ field=>'routernum', type=>'select-router_block_ip',
include_opt_callback => sub {
my $svc_broadband = shift;
diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html
index d86b7ee43..ecac7f765 100644
--- a/httemplate/elements/select-table.html
+++ b/httemplate/elements/select-table.html
@@ -90,6 +90,7 @@ Example:
<OPTION VALUE=""><% $opt{'empty_label'} || 'all' %></OPTION>
% }
+% my $curr_option_found;
% foreach my $record (
% # we have the order_by parameter for this
% #sort { $a->$name_col() cmp $b->$name_col()
@@ -108,6 +109,7 @@ Example:
% $selected = ( ref($value) && $value->{$recvalue} )
% || ( $value && $value eq $recvalue ); #not == because of value_col
% }
+% $curr_option_found = $selected unless $curr_option_found;
<OPTION VALUE="<% $recvalue %>"
<% $selected ? ' SELECTED' : '' %>
% foreach my $att ( @{ $opt{'extra_option_attributes'} } ) {
@@ -129,6 +131,11 @@ Example:
<OPTION VALUE="<% $post_opt %>"
<% $selected ? 'SELECTED' : '' %>
><% $post_label %></OPTION>
+% }
+
+% my $non_option_label = $opt{'non_option_label'};
+% if (!$curr_option_found && $non_option_label && $value) {
+ <OPTION VALUE="<% $value %>" SELECTED><% $non_option_label %></OPTION>
% }
</SELECT>
diff --git a/httemplate/elements/select-tower_sector.html b/httemplate/elements/select-tower_sector.html
index 76ff25223..4dfd23dcc 100644
--- a/httemplate/elements/select-tower_sector.html
+++ b/httemplate/elements/select-tower_sector.html
@@ -3,7 +3,7 @@
table => 'tower_sector',
name_col => 'description',
addl_from => 'JOIN tower USING (towernum)',
- extra_sql => q(WHERE disabled = '' OR disabled IS NULL),
+ extra_sql => $extra_sql,
order_by => 'ORDER BY towernum,sectorname',
empty_label => ' ',
@_
@@ -67,4 +67,7 @@ foreach my $towernum (keys %sectors_of) {
}
my $empty_label = $opt{'empty_label'} || 'Include services with no sector';
+
+my $extra_sql = q(WHERE (disabled = '' OR disabled IS NULL));
+$extra_sql .= q( AND sectorname != '_default') if $opt{'sectorsonly'};
</%init>
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_export/saisei.pm | 16 ++++++++++++++++
httemplate/edit/svc_broadband.cgi | 16 +++++++++++++++-
httemplate/elements/select-table.html | 7 +++++++
httemplate/elements/select-tower_sector.html | 5 ++++-
4 files changed, 42 insertions(+), 2 deletions(-)
More information about the freeside-commits
mailing list