'dest_regionnum', 'int', '', '', '', '',
'min_included', 'int', '', '', '', '',
'conn_charge', 'decimal', '', '10,4', '0.0000', '',
+ 'conn_cost', 'decimal', '', '10,4', '0.0000', '',
'conn_sec', 'int', '', '', '0', '',
'min_charge', 'decimal', '', '10,5', '', '',
+ 'min_cost', 'decimal', '', '10,5','0.00000', '',
'sec_granularity', 'int', '', '', '', '',
'ratetimenum', 'int', 'NULL', '', '', '',
'classnum', 'int', 'NULL', '', '', '',
'cdrtypenum', 'int', 'NULL', '', '', '',
- 'region_group', 'char', 'NULL', 1, '', '',
+ 'region_group', 'char', 'NULL', 1, '', '',
],
'primary_key' => 'ratedetailnum',
'unique' => [ [ 'ratenum', 'orig_regionnum', 'dest_regionnum' ] ],
#|| $self->ut_money('min_charge')
#good enough for now...
+ || $self->ut_floatn('conn_charge')
+ || $self->ut_floatn('conn_cost')
|| $self->ut_float('min_charge')
+ || $self->ut_floatn('min_cost')
|| $self->ut_number('sec_granularity')
my( $rate, $field ) = @_;
return sub {
my $rate_detail = $rate->dest_detail(shift)
- || new FS::rate_region { 'min_included' => 0,
+ || new FS::rate_detail { 'min_included' => 0,
'min_charge' => 0,
+ 'min_cost' => 0,
'sec_granularity' => 0,
};
my $value = $rate_detail->$field();
<TABLE CLASS="inv" STYLE="border:none">
<TR><TD><% edit_link($detail) %><% $money_char.$detail->min_charge %>
<% $detail->sec_granularity ? ' / minute':' / call' %>
+% if ( $detail->min_cost ) {
+ (<% $money_char.$detail->min_charge %> cost)
+% }
<% $edit_hint %></A>
</TD></TR>
<% granularity_detail($detail) %>
include( '/elements/popup_link_onclick.html',
'action' => "${p}edit/rate_detail.html?$ratedetailnum",
'actionlabel' => 'Edit rate',
- 'height' => 420,
+ 'height' => 460,
#default# 'width' => 540,
#default# 'color' => '#333399',
) . '">'
($rate_time ? $rate_time->ratetimenum : '').
";cdrtypenum=$cdrtypenum",
'actionlabel' => 'Add rate',
- 'height' => 420,
+ 'height' => 460,
).'">'.small('(add)').'</A>'
}
#return '' unless $rate_detail->conn_charge > 0 || $rate_detail->conn_sec;
'<TR><TD>'.
small( $money_char. $rate_detail->conn_charge.
- ' for '.$conn_secs{$rate_detail->conn_sec}
+ ( $rate_detail->conn_cost
+ ? ' ('. $money_char.$rate_detail->conn_cost. ' cost)'
+ : ''
+ ).
+ ' for '. $conn_secs{$rate_detail->conn_sec}
).
'</TD></TR>'
}
% $cgi->param('error', $error);
<% $cgi->redirect(popurl(2). "rate_region.cgi?". $cgi->query_string ) %>
%} elsif ( $action eq 'Add' ) {
-<% $cgi->redirect(popurl(2). "rate_region.cgi?$regionnum") %>
+<% $cgi->redirect(popurl(2). "rate_region.cgi?regionnum=$regionnum") %>
%} else {
<% $cgi->redirect(popurl(3). "browse/rate_region.html") %>
%}
'rate_time_name' => 'Time period',
'min_included' => 'Included minutes/calls',
'region_group' => 'Region Group',
- 'conn_charge' => 'Connection charge',
+ 'conn_charge' => 'Retail connection charge',
'conn_sec' => 'For',
- 'min_charge' => 'Charge per minute/call',
+ 'min_charge' => 'Retail charge per minute/call',
'sec_granularity' => 'Granularity',
+ 'conn_cost' => 'Wholesale connection cost',
+ 'min_cost' => 'Wholesale cost per minute/call',
'classnum' => 'Usage class',
},
'fields' => [
},
{ field=>'min_included', type=>'text', size=>5 },
{ field=>'conn_charge', type=>'money', size=>4 },
+ { field=>'conn_cost', type=>'money', size=>4 },
{ field =>'conn_sec',
type =>'select',
options => [ keys %conn_secs ],
disable_empty => 1,
},
{ field=>'min_charge', type=>'money', size=>4 },
+ { field=>'min_cost', type=>'money', size=>4 },
{ field =>'sec_granularity',
type =>'select',
options => [ keys %granularity ],
|| new FS::rate_detail \%hash;
$dst_rate_detail->$_( $src_rate_detail->get($_) )
- foreach qw( min_included conn_charge conn_sec min_charge sec_granularity classnum );
+ foreach qw( min_included conn_charge conn_sec min_charge sec_granularity
+ conn_cost min_cost classnum );
my $method = $dst_rate_detail->ratedetailnum ? 'replace' : 'insert';