summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-05-15 14:59:14 -0700
committerIvan Kohler <ivan@freeside.biz>2014-05-15 14:59:14 -0700
commit881215feafc01aeee19864c39f0d98d3d6909e65 (patch)
tree2b050555839739dfa3ab1180ebd08217c9127096 /httemplate
parentfb03e9179814686b5c3665ce35b90cfeadb16fb9 (diff)
agent-virtualize VoIP rates, RT#29183
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/browse/rate.cgi26
-rwxr-xr-xhttemplate/edit/part_pkg.cgi10
-rw-r--r--httemplate/edit/rate.cgi16
-rw-r--r--httemplate/elements/menu.html27
-rw-r--r--httemplate/elements/select-rate.html19
5 files changed, 67 insertions, 31 deletions
diff --git a/httemplate/browse/rate.cgi b/httemplate/browse/rate.cgi
index 0c425a5d1..ea59a0c5b 100644
--- a/httemplate/browse/rate.cgi
+++ b/httemplate/browse/rate.cgi
@@ -1,12 +1,6 @@
<% include( 'elements/browse.html',
'title' => 'Rate plans',
- 'menubar' => [ 'Regions and Prefixes' =>
- $p.'browse/rate_region.html',
- 'Time Periods' =>
- $p.'browse/rate_time.html',
- 'CDR Types' =>
- $p.'edit/cdr_type.cgi',
- ],
+ 'menubar' => \@menubar,
'html_init' => $html_init,
'name' => 'rate plans',
'query' => { 'table' => 'rate',
@@ -17,6 +11,9 @@
'header' => [ '#', 'Rate plan', 'Rates' ],
'fields' => [ 'ratenum', 'ratename', $rates_sub ],
'links' => [ $link, $link, '' ],
+ 'agent_virt' => 1,
+ 'agent_pos' => 1,
+ 'agent_null_right' => 'Configuration', #'Edit global CDR rates',
'really_disable_download' => 1
)
%>
@@ -63,7 +60,20 @@ my $link = [ $p.'edit/rate.cgi?ratenum=', 'ratenum' ];
</%once>
<%init>
+my $curuser = $FS::CurrentUser::CurrentUser;
+
die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+ unless $curuser->access_right('Edit CDR rates')
+ #|| $curuser->access_right('Edit global CDR rates')
+ || $curuser->access_right('Configuration');
+
+my @menubar;
+if ( $curuser->access_right('Configuration') ) { #, 'Edit global CDR rates') ) {
+ push @menubar,
+ 'Regions and Prefixes' => $p.'browse/rate_region.html',
+ 'Time Periods' => $p.'browse/rate_time.html',
+ 'CDR Types' => $p.'edit/cdr_type.cgi',
+ ;
+}
</%init>
diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi
index c7d314c94..2d2c070a7 100755
--- a/httemplate/edit/part_pkg.cgi
+++ b/httemplate/edit/part_pkg.cgi
@@ -972,7 +972,15 @@ my $html_bottom = sub {
? ' CHECKED'
: ''
). '>';
-
+
+ } elsif ( $href->{$field}{'type'} eq 'select-rate' ) {
+
+ $html .= include('/elements/select-rate.html',
+ map { $_ => $href->{$field}{$_} }
+ grep { $_ !~ /^(name|type)$/ }
+ keys %{ $href->{$field} }
+ );
+
} elsif ( $href->{$field}{'type'} =~ /^select/ ) {
$html .= '<SELECT';
diff --git a/httemplate/edit/rate.cgi b/httemplate/edit/rate.cgi
index 1abfb0d32..652c1a68c 100644
--- a/httemplate/edit/rate.cgi
+++ b/httemplate/edit/rate.cgi
@@ -13,9 +13,19 @@
<FORM NAME="OneTrueForm">
<INPUT TYPE="hidden" NAME="ratenum" VALUE="<% $rate->ratenum %>">
-Rate plan
-<INPUT TYPE="text" NAME="ratename" SIZE=32 VALUE="<% $rate->ratename %>">
-<BR><BR>
+<TABLE CLASS="fsinnerbox">
+
+<& /elements/tr-select-agent.html,
+ disable_empty => ! $FS::CurrentUser::CurrentUser->access_right('Configuration'), #, 'Edit global CDR rates'
+ empty_label => '(global)',
+&>
+
+<TR>
+ <TD>Rate plan</TD>
+ <TD><INPUT TYPE="text" NAME="ratename" SIZE=32 VALUE="<% $rate->ratename %>"></TD>
+</TR>
+</TABLE>
+<BR>
<INPUT TYPE="hidden" NAME="preserve_rate_detail" VALUE="1">
diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html
index 7abd76a2b..de5ea194a 100644
--- a/httemplate/elements/menu.html
+++ b/httemplate/elements/menu.html
@@ -615,15 +615,19 @@ tie my %config_sales, 'Tie::IxHash',
'Sales People' => [ $fsurl.'browse/sales.html', 'Sales people bring in new business.' ],
;
-tie my %config_billing_rates, 'Tie::IxHash',
- 'Rate plans' => [ $fsurl.'browse/rate.cgi', 'Manage rate plans' ],
- 'Regions and prefixes' => [ $fsurl.'browse/rate_region.html', 'Manage regions and prefixes' ],
- 'Usage classes' => [ $fsurl.'browse/usage_class.html', 'Usage classes define groups of usage for taxation.' ],
- 'Time periods' => [ $fsurl.'browse/rate_time.html', 'Time periods define days and hours for rate plans' ],
- 'Edit rates with Excel' => [ $fsurl.'misc/rate_edit_excel.html', 'Download and edit rates with Excel, then upload changes.' ], #"Edit with Excel" ?
- 'separator' => '', #its a separator!
- 'Tiering plans' => [ $fsurl.'browse/rate_tier.html', 'Rating tiers' ],
-;
+tie my %config_billing_rates, 'Tie::IxHash';
+$config_billing_rates{'Rate plans'} = [ $fsurl.'browse/rate.cgi', 'Manage rate plans' ]
+ if $curuser->access_right('Edit CDR rates')
+ #|| $curuser->access_right('Edit global CDR rates')
+ || $curuser->access_right('Configuration');
+if ( $curuser->access_right('Configuration') ) {
+ $config_billing_rates{'Regions and prefixes'} = [ $fsurl.'browse/rate_region.html', 'Manage regions and prefixes' ];
+ $config_billing_rates{'Usage classes'} = [ $fsurl.'browse/usage_class.html', 'Usage classes define groups of usage for taxation.' ];
+ $config_billing_rates{'Time periods'} = [ $fsurl.'browse/rate_time.html', 'Time periods define days and hours for rate plans' ];
+ $config_billing_rates{'Edit rates with Excel'} = [ $fsurl.'misc/rate_edit_excel.html', 'Download and edit rates with Excel, then upload changes.' ]; #"Edit with Excel" ?
+ $config_billing_rates{'separator'} = ''; #its a separator!
+ $config_billing_rates{'Tiering plans'} = [ $fsurl.'browse/rate_tier.html', 'Rating tiers' ];
+}
tie my %config_billing, 'Tie::IxHash';
# 'Payment gateways' => [ $fsurl.'browse/payment_gateway.html', 'Credit card and electronic check processors' ];
@@ -636,7 +640,10 @@ if ( $curuser->access_right('Configuration') ) {
$config_billing{'Invoice templates'} = [ $fsurl.'browse/invoice_template.html', 'Edit templates for HTML, plaintext and typeset invoices' ];
$config_billing{'separator'} = ''; #its a separator!
$config_billing{'Prepaid cards'} = [ $fsurl.'search/prepay_credit.html', 'View outstanding cards, generate new cards' ];
- $config_billing{'Call rates and regions'} = [ \%config_billing_rates, 'Manage rate plans, regions and prefixes for VoIP and call billing' ];
+}
+$config_billing{'Call rates and regions'} = [ \%config_billing_rates, 'Manage rate plans, regions and prefixes for VoIP and call billing' ]
+ if keys %config_billing_rates;
+if ( $curuser->access_right('Configuration') ) {
$config_billing{'separator2'} = ''; #its a separator!
my $config_taxes_name = 'Locales and tax rates'.
diff --git a/httemplate/elements/select-rate.html b/httemplate/elements/select-rate.html
index 83a7add06..4f2a1b2ec 100644
--- a/httemplate/elements/select-rate.html
+++ b/httemplate/elements/select-rate.html
@@ -1,9 +1,10 @@
-<% include( '/elements/select-table.html',
- 'table' => 'rate',
- 'name_col' => 'ratename',
- 'empty_label' => 'Select rate plan',
- #'hashref' => { 'disabled' => '' },
- 'order_by' => ' ORDER BY ratenum', #ratename ?
- @_,
- )
-%>
+<& /elements/select-table.html,
+ 'table' => 'rate',
+ 'name_col' => 'ratename',
+ 'empty_label' => 'Select rate plan',
+ #'hashref' => { 'disabled' => '' },
+ 'order_by' => ' ORDER BY ratenum', #ratename ?
+ 'agent_virt' => 1,
+ 'agent_null_right' => 'Configuration', #'Edit global CDR rates'
+ @_,
+&>