X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fmenu.html;h=8b7d5335ecb1d369fb63c0004ec31369cc6dd7b6;hb=1aa51c61c1104dfac3648993db4af1aed0ae89d2;hp=34bba7e8c9e70851f314b690b25ca29999410668;hpb=7beec7068e00be5ae1b2599fdf2b494bc19e31d0;p=freeside.git diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index 34bba7e8c..8b7d5335e 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -226,10 +226,12 @@ foreach my $svcdb ( FS::part_svc->svc_tables() ) { ]; } + if ( $curuser->access_right("Services: $name: Advanced search") + && $svcdb =~ /^svc_(acct|broadband|hardware|phone|fiber)$/ ) { + $report_svc{"Advanced $lcsname reports"} = - [ $fsurl."search/report_$svcdb.html", '' ] - if $svcdb =~ /^svc_(acct|broadband|hardware|phone)$/ - && $curuser->access_right("Services: $name: Advanced search"); + [ $fsurl."search/report_$svcdb.html", '' ] + } if ( $svcdb eq 'svc_phone' ) { @@ -288,9 +290,12 @@ $report_rating{'Call Detail Records (CDRs)'} = [ $fsurl.'search/report_cdr.html' if $curuser->access_right("Usage: Call Detail Records (CDRs)"); $report_rating{'Unrateable CDRs'} = [ $fsurl.'search/cdr.html?freesidestatus=failed;cdrbatchnum=_ALL_' ] if $curuser->access_right("Usage: Unrateable CDRs"); +$report_rating{'Customer CDRs Profit/Loss'} = [ $fsurl.'search/report_customer_cdr_profit.html', 'Profit/loss from customer CDRs' ] + if $curuser->access_right('Financial reports'); if ( $curuser->access_right("Usage: Time worked") ) { $report_rating{'Time worked'} = [ $fsurl.'search/report_rt_transaction.html', '' ]; - $report_rating{'Time worked summary'} = [ $fsurl.'search/report_rt_ticket.html', '' ]; + $report_rating{'Time worked summary per ticket'} = [ $fsurl.'search/report_rt_ticket.html', '' ]; + $report_rating{'Time worked summary per customer'} = [ $fsurl.'search/report_rt_cust.html', '' ]; } tie my %report_ticketing_statistics, 'Tie::IxHash', @@ -388,6 +393,8 @@ if( $curuser->access_right('Financial reports') ) { $report_financial{'Tax Liability (vendor tax data)'} = [ $fsurl.'search/report_newtax.html', 'Tax liability report (vendor tax data)' ] if $taxproducts; + $report_financial{'Monthly Sales and Taxes'} = [$fsurl.'search/tax_sales.html', 'Monthly sales and taxes report']; + # most sites don't need this but there isn't really a config to enable it $report_financial{'E911 Fee Summary'} = [ $fsurl.'search/report_e911.html', 'E911 fee summary' ]; @@ -447,6 +454,26 @@ $report_menu{'Logs'} = [ \%report_logs, 'System and email logs' ] $report_menu{'SQL Query'} = [ $fsurl.'search/report_sql.html', 'SQL Query'] if $curuser->access_right('Raw SQL'); +tie my %tools_customers, 'Tie::IxHash', (); +$tools_customers{'Appointments'} = [ $fsurl.'rt/Search/Schedule.html?LengthMin=0', 'View appointment schedule' ] + if $curuser->access_right('View appointments'); +$tools_customers{'Attachments'} = [ $fsurl.'browse/cust_attachment.html', 'View customer attachments' ] + if !$conf->config('disable_cust_attachment') and $curuser->access_right('View attachments') and $curuser->access_right('Browse attachments'); +$tools_customers{'Customer email settings'} = [ $fsurl.'misc/manage_cust_email.html' ] + if $curuser->access_right('Edit customer'); + +tie my %tools_billing, 'Tie::IxHash', (); +$tools_billing{'Quick payment entry'} = [ $fsurl.'misc/batch-cust_pay.html', 'Enter multiple payments in a batch' ] + if $curuser->access_right('Post payment batch'); +$tools_billing{'Process payment batches'} = [ $fsurl.'search/pay_batch.cgi?magic=_date;open=1;intransit=1', 'Process credit card and electronic check batches' ] + if ( $conf->exists('batch-enable') || $conf->config('batch-enable_payby') ) + && $curuser->access_right('Process batches'); +$tools_billing{'Download invoice batches'} = [ $fsurl.'search/bill_batch.cgi' ] + if $curuser->access_right('Process invoice batches') + || $curuser->access_right('Process global invoice batches') + || $curuser->access_right('Configuration'); #XXX remove in 2.5 + #now there's a standalone event#if $conf->exists('invoice_print_pdf'); + tie my %tools_importing, 'Tie::IxHash', 'Customers' => [ $fsurl.'misc/cust_main-import.cgi', '' ], 'Package definitions' => [ $fsurl.'misc/part_pkg-import.html', '' ], @@ -468,9 +495,17 @@ if ( $conf->exists('enable_taxproducts') ) { } } -tie my %tools_exporting, 'Tie::IxHash', - 'Download database dump' => [ $fsurl. 'misc/dump.cgi', '' ], -; +tie my %tools_misc, 'Tie::IxHash', (); +$tools_misc{'Bulk DID Orders'} = [ $fsurl.'browse/did_order.html', 'View/manage bulk DID orders' ] + if $curuser->access_right('Import'); +$tools_misc{'Business card scan'} = [ $fsurl.'edit/prospect_main-upload.html' ] + if $curuser->access_right('New prospect'); +$tools_misc{'Time Queue'} = [ $fsurl.'search/report_timeworked.html', 'View pending support time' ] + if $curuser->access_right('Time queue'); + +#tie my %tools_exporting, 'Tie::IxHash', +# 'Download database dump' => [ $fsurl. 'misc/dump.cgi', '' ], +#; tie my %tools_ticketing_articles, 'Tie::IxHash', 'Overview' => [ $fsurl.'rt/Articles/index.html', '' ], @@ -488,38 +523,27 @@ tie my %tools_ticketing, 'Tie::IxHash', $tools_ticketing{'Cron Tool'} = [ $fsurl.'rt/Developer/CronTool/', '' ] if $conf->exists('rt-crontool'); -tie my %tools_menu, 'Tie::IxHash', (); -$tools_menu{'Quick payment entry'} = [ $fsurl.'misc/batch-cust_pay.html', 'Enter multiple payments in a batch' ] - if $curuser->access_right('Post payment batch'); -$tools_menu{'Process payment batches'} = [ $fsurl.'search/pay_batch.cgi?magic=_date;open=1;intransit=1', 'Process credit card and electronic check batches' ] - if ( $conf->exists('batch-enable') || $conf->config('batch-enable_payby') ) - && $curuser->access_right('Process batches'); -$tools_menu{'Download invoice batches'} = [ $fsurl.'search/bill_batch.cgi' ] - if $curuser->access_right('Process invoice batches') - || $curuser->access_right('Process global invoice batches') - || $curuser->access_right('Configuration'); #XXX remove in 2.5 - #now there's a standalone event#if $conf->exists('invoice_print_pdf'); -$tools_menu{'Bulk DID Orders'} = [ $fsurl.'browse/did_order.html', 'View/manage bulk DID orders' ] - if $curuser->access_right('Import'); -$tools_menu{'Job Queue'} = [ $fsurl.'search/queue.html', 'View pending job queue' ] +tie my %tools_system, 'Tie::IxHash', (); +$tools_system{'Status'} = [ $fsurl.'view/Status.html', 'System status' ] + if $curuser->access_right('Configuration'); # 'View system status'); +$tools_system{'Job Queue'} = [ $fsurl.'search/queue.html', 'View pending job queue' ] if $curuser->access_right('Job queue'); + +tie my %tools_menu, 'Tie::IxHash', (); +$tools_menu{'Customers'} = [ \%tools_customers, 'Customer tools' ] + if keys %tools_customers; +$tools_menu{'Billing'} = [ \%tools_billing, 'Payment and invoice tools' ] + if keys %tools_billing; $tools_menu{'Ticketing'} = [ \%tools_ticketing, 'Ticketing tools' ] if $conf->config('ticket_system'); -$tools_menu{'Customer email settings'} = [ $fsurl.'misc/manage_cust_email.html' ] - if $curuser->access_right('Edit customer'); -$tools_menu{'Business card scan'} = [ $fsurl.'edit/prospect_main-upload.html' ] - if $curuser->access_right('New prospect'); -$tools_menu{'Time Queue'} = [ $fsurl.'search/report_timeworked.html', 'View pending support time' ] - if $curuser->access_right('Time queue'); -$tools_menu{'Attachments'} = [ $fsurl.'browse/cust_attachment.html', 'View customer attachments' ] - if !$conf->config('disable_cust_attachment') and $curuser->access_right('View attachments') and $curuser->access_right('Browse attachments'); +$tools_menu{'Miscellaneous'} = [ \%tools_misc, '' ] + if keys %tools_misc; $tools_menu{'Importing'} = [ \%tools_importing, 'Import tools' ] if $curuser->access_right('Import'); -$tools_menu{'Exporting'} = [ \%tools_exporting, 'Export tools' ] - if $curuser->access_right('Export'); -$tools_menu{'Status'} = [ $fsurl.'view/Status.html', 'System status' ] - if $curuser->access_right('Configuration'); # 'View system status'); - +#$tools_menu{'Exporting'} = [ \%tools_exporting, 'Export tools' ] +# if $curuser->access_right('Export'); +$tools_menu{'System'} = [ \%tools_system, 'System tools' ] + if keys %tools_menu; tie my %config_employees, 'Tie::IxHash', 'Employees' => [ $fsurl.'browse/access_user.html', 'Setup internal users' ], @@ -569,6 +593,10 @@ tie my %config_circuit, 'Tie::IxHash', 'Termination types' => [ $fsurl.'browse/circuit_termination.html', '' ], ; +tie my %config_fiber, 'Tie::IxHash', + 'OLTs' => [ $fsurl.'browse/fiber_olt.html', '' ], +; + tie my %config_export_svc, 'Tie::IxHash', (); if ( $curuser->access_right('Configuration') ) { $config_export_svc{'Service definitions'} = [ $fsurl.'browse/part_svc.cgi', 'Services are items you offer to your customers' ]; @@ -589,6 +617,8 @@ $config_export_svc{'Alarm'} = [ \%config_alarm, '' ] if $curuser->access_right(['Alarm configuration', 'Alarm global configuration']); $config_export_svc{'Circuits'} = [ \%config_circuit, '' ] if $curuser->access_right('Configuration'); +$config_export_svc{'Fiber'} = [ \%config_fiber, '' ] + if $curuser->access_right('Configuration'); $config_export_svc{'Hardware types'} = [ $fsurl.'browse/hardware_class.html', 'Set up hardware type catalog' ] if $curuser->access_right('Configuration'); @@ -681,8 +711,14 @@ if ( $curuser->access_right('Configuration') ) { if $conf->exists('enable_taxproducts'); $config_billing{'Tax classes'} = [ $fsurl. 'browse/part_pkg_taxclass.html', 'Tax classes' ]; + $config_billing{'separator5'} = ''; #its a separator! $config_billing{'Credit reasons'} = [ $fsurl.'browse/reason.html?class=R', 'Credit reasons explain why a credit was issued.' ]; $config_billing{'Credit reason types'} = [ $fsurl.'browse/reason_type.html?class=R', 'Credit reason types define groups of reasons.' ]; + $config_billing{'Credit void reasons'} = [ $fsurl.'browse/reason.html?class=X', 'Credit void reasons explain why a credit was voided.' ]; + $config_billing{'Credit void reason types'} = [ $fsurl.'browse/reason_type.html?class=X', 'Credit void reason types define groups of reasons.' ]; + + $config_billing{'Refund reasons'} = [ $fsurl.'browse/reason.html?class=F', 'Refund reasons explain why a refund was issued.' ]; + $config_billing{'Refund reason types'} = [ $fsurl.'browse/reason_type.html?class=F', 'Refund reason types define groups of reasons.' ]; } #XXX also to be unified @@ -737,10 +773,10 @@ $config_misc{'Message templates'} = [ $fsurl.'browse/msg_template.html', 'Templa $config_misc{'Advertising sources'} = [ $fsurl.'browse/part_referral.html', 'Where a customer heard about your service.' ] if $curuser->access_right('Edit advertising sources') || $curuser->access_right('Edit global advertising sources'); -if ( $curuser->access_right('Configuration') ) { - $config_misc{'Custom fields'} = [ $fsurl.'browse/part_virtual_field.html', 'Locally defined fields', ]; - $config_misc{'Translation strings'} = [ $fsurl.'browse/msgcat.html', 'Translations and other customizable labels for each locale' ]; -} +$config_misc{'Custom fields'} = [ $fsurl.'browse/part_virtual_field.html', 'Locally defined fields', ] + if $curuser->access_right('Edit custom fields'); +$config_misc{'Translation strings'} = [ $fsurl.'browse/msgcat.html', 'Translations and other customizable labels for each locale' ] + if $curuser->access_right('Configuration'); $config_misc{'Inventory classes and inventory'} = [ $fsurl.'browse/inventory_class.html', 'Setup inventory classes and stock inventory' ] if $curuser->access_right('Edit inventory') || $curuser->access_right('Edit global inventory')