;
$report_customers{'Search customers'} = [ \%report_customers_search, 'Search customers' ]
if keys %report_customers_search;
-$report_customers{'Zip code distribution'} = [ $fsurl.'search/report_cust_main-zip.html', 'Zip codes by number of customers' ];
+$report_customers{'Zip code distribution'} = [ $fsurl. 'search/report_cust_main-zip.html', 'Zip codes by number of customers' ];
+$report_customers{'Advanced customer reports'} = [ $fsurl. 'search/report_cust_main.html', 'by status, signup date, agent, etc.' ]
+ if $curuser->access_right('List customers')
+ && $curuser->access_right('List packages');
tie my %report_invoices_open, 'Tie::IxHash',
'All open invoices' => [ $fsurl.'search/cust_bill.html?OPEN_date', 'All invoices with an unpaid balance' ],
foreach my $sort ( @$sorts ) {
+ my $field_info = FS::part_svc->svc_table_fields($svcdb)->{$sort};
+ my $label = $field_info->{'label_sort'} || 'by '.$field_info->{'label'};
+
my $title = "All $lcname";
- $title .= " by ". FS::part_svc->svc_table_fields($svcdb)->{$sort}->{'label'}
+ $title .= " $label"
if scalar(@$sorts) > 1;
$report_svc{$title} =
}
tie my %report_packages, 'Tie::IxHash';
-if ( $curuser->access_right('Configuration') ) {
+if ( $curuser->access_right('Edit package definitions')
+ || $curuser->access_right('Edit global package definitions')
+ )
+{
$report_packages{'Package definitions'} = [ $fsurl.'browse/part_pkg.cgi?active=1', 'Package definitions by number of active packages' ];
$report_packages{'separator'} = '';
}
'View/Edit employee groups' => [ $fsurl.'browse/access_group.html', 'Employee groups allow you to control access to the backend' ],
;
-tie my %config_export_svc_pkg, 'Tie::IxHash',
- 'View/Edit exports' => [ $fsurl.'browse/part_export.cgi', 'Provisioning services to external machines, databases and APIs' ],
- 'View/Edit service definitions' => [ $fsurl.'browse/part_svc.cgi', 'Services are items you offer to your customers' ],
- 'View/Edit package definitions' => [ $fsurl.'browse/part_pkg.cgi', 'One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services' ],
- 'View/Edit package classes' => [ $fsurl.'browse/pkg_class.html', 'Package classes define groups of packages, for reporting and convenience purposes.' ],
- 'View/Edit cancel reason types' => [ $fsurl.'browse/reason_type.html?class=C', 'Cancel reason types define groups of reasons, for reporting and convenience purposes.' ],
- 'View/Edit cancel reasons' => [ $fsurl.'browse/reason.html?class=C', 'Cancel reasons explain why a service was cancelled.' ],
- 'View/Edit suspend reason types' => [ $fsurl.'browse/reason_type.html?class=S', 'Suspend reason types define groups of reasons, for reporting and convenience purposes.' ],
- 'View/Edit suspend reasons' => [ $fsurl.'browse/reason.html?class=S', 'Suspend reasons explain why a service was suspended.' ],
-;
+tie my %config_export_svc_pkg, 'Tie::IxHash', ();
+if ( $curuser->access_right('Configuration') ) {
+ $config_export_svc_pkg{'View/Edit exports'} = [ $fsurl.'browse/part_export.cgi', 'Provisioning services to external machines, databases and APIs' ];
+ $config_export_svc_pkg{'View/Edit service definitions'} = [ $fsurl.'browse/part_svc.cgi', 'Services are items you offer to your customers' ];
+}
+$config_export_svc_pkg{'View/Edit package definitions'} = [ $fsurl.'browse/part_pkg.cgi', 'One or more services are grouped together into a package and given pricing information. Customers purchase packages, not services' ]
+ if $curuser->access_right('Edit package definitions')
+ || $curuser->access_right('Edit global package definitions');
+if ( $curuser->access_right('Configuration') ) {
+ $config_export_svc_pkg{'View/Edit package classes'} = [ $fsurl.'browse/pkg_class.html', 'Package classes define groups of packages, for reporting and convenience purposes.' ];
+ $config_export_svc_pkg{'View/Edit cancel reason types'} = [ $fsurl.'browse/reason_type.html?class=C', 'Cancel reason types define groups of reasons, for reporting and convenience purposes.' ];
+ $config_export_svc_pkg{'View/Edit cancel reasons'} = [ $fsurl.'browse/reason.html?class=C', 'Cancel reasons explain why a service was cancelled.' ];
+ $config_export_svc_pkg{'View/Edit suspend reason types'} = [ $fsurl.'browse/reason_type.html?class=S', 'Suspend reason types define groups of reasons, for reporting and convenience purposes.' ];
+ $config_export_svc_pkg{'View/Edit suspend reasons'} = [ $fsurl.'browse/reason.html?class=S', 'Suspend reasons explain why a service was suspended.' ];
+}
tie my %config_agent, 'Tie::IxHash',
'View/Edit agent types' => [ $fsurl.'browse/agent_type.cgi', 'Agent types define groups of package definitions that you can then assign to particular agents' ],
tie my %config_billing, 'Tie::IxHash',
'View/Edit payment gateways' => [ $fsurl.'browse/payment_gateway.html', 'Credit card and electronic check processors' ];
$config_billing{'View/Edit billing events'} = [ $fsurl.'browse/part_event.html', 'Billing actions for customers, invoices and packages' ]
- if $curuser->access_right('Configuration')
- || $curuser->access_right('Edit billing events')
+ if $curuser->access_right('Edit billing events')
|| $curuser->access_right('Edit global billing events');
if ( $curuser->access_right('Configuration') ) {
$config_billing{'View/Edit invoice events'} = [ $fsurl.'browse/part_bill_event.cgi', 'Deprecated, old-style actions for overdue invoices' ];
tie my %config_misc, 'Tie::IxHash';
$config_misc{'View/Edit advertising sources'} = [ $fsurl.'browse/part_referral.html', 'Where a customer heard about your service. Tracked for informational purposes' ]
- if $curuser->access_right('Configuration')
- || $curuser->access_right('Edit advertising sources')
+ if $curuser->access_right('Edit advertising sources')
|| $curuser->access_right('Edit global advertising sources');
if ( $curuser->access_right('Configuration') ) {
$config_misc{'View/Edit virtual fields'} = [ $fsurl.'browse/part_virtual_field.cgi', 'Locally defined fields', ];
'Settings' => [ $fsurl.'config/config-view.cgi', '' ],
'separator' => '', #its a separator!
'Employees' => [ \%config_employees, '' ],
- 'Provisioning, services and packages'
- => [ \%config_export_svc_pkg, '' ],
- 'Resellers' => [ \%config_agent, '' ],
);
}
+$config_menu{'Provisioning, services and packages'} =
+ [ \%config_export_svc_pkg, '' ]
+ if $curuser->access_right('Configuration' )
+ || $curuser->access_right('Edit package definitions')
+ || $curuser->access_right('Edit global package definitions');
+$config_menu{'Resellers'} = [ \%config_agent, '' ]
+ if $curuser->access_right('Configuration');
$config_menu{'Billing'} = [ \%config_billing, '' ]
- if $curuser->access_right('Configuration')
- || $curuser->access_right('Edit billing events')
+ if $curuser->access_right('Edit billing events')
|| $curuser->access_right('Edit global billing events');
if ( $curuser->access_right('Configuration') ) {
$config_menu{'Dialup'} = [ \%config_dialup, '' ];
[ \%config_broadband, '' ];
}
$config_menu{'Miscellaneous'} = [ \%config_misc, '' ]
- if $curuser->access_right('Configuration')
- || $curuser->access_right('Edit advertising sources')
+ if $curuser->access_right('Edit advertising sources')
|| $curuser->access_right('Edit global advertising sources');
tie my %menu, 'Tie::IxHash',
$menu{'Tools'} = [ \%tools_menu, 'Tools' ]
if keys %tools_menu;
$menu{'Configuration'} = [ \%config_menu, 'Configuraiton and setup' ]
- if $curuser->access_right('Configuration')
- || $curuser->access_right('Edit advertising sources')
+ if $curuser->access_right('Edit advertising sources')
|| $curuser->access_right('Edit global advertising sources');
use vars qw($gmenunum);