From: Ivan Kohler Date: Mon, 26 Aug 2013 04:06:41 +0000 (-0700) Subject: continue sales person work: customer and package selection, commissions, reporting... X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=a9e0bcdce308177b619f1490f58a608f49a69e90 continue sales person work: customer and package selection, commissions, reporting. RT#23402 --- diff --git a/FS/FS/sales_pkg_class.pm b/FS/FS/sales_pkg_class.pm index 0fb7e8698..90867a828 100644 --- a/FS/FS/sales_pkg_class.pm +++ b/FS/FS/sales_pkg_class.pm @@ -2,7 +2,7 @@ package FS::sales_pkg_class; use base qw( FS::Record ); use strict; -#use FS::Record qw( qsearch qsearchs ); +use FS::Record qw( qsearchs ); # qsearch qsearchs ); use FS::sales; use FS::pkg_class; @@ -110,6 +110,17 @@ sub check { $self->SUPER::check; } +sub pkg_class { + my $self = shift; + qsearchs('pkg_class', { 'classnum' => $self->classnum }); +} + +sub classname { + my $self = shift; + my $pkg_class = $self->pkg_class; + $pkg_class ? $pkg_class->classname : '(no package class)'; +} + =back =head1 BUGS diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index 15d2f5346..b619aba30 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -339,7 +339,8 @@ tie my %report_sales, 'Tie::IxHash', 'Sales Report' => [ $fsurl.'graph/report_cust_bill_pkg.html', 'Sales report and graph (by agent, package class and/or date range)' ], 'Rated Call Sales Report' => [ $fsurl.'graph/report_cust_bill_pkg_detail.html', 'Sales report and graph (by agent, package class, usage class and/or date range)' ], 'Sales with Advertising Source' => [ $fsurl.'search/report_cust_bill_pkg_referral.html' ], - 'Sales with Agent Commissions' => [ $fsurl.'search/report_agent_commission.html' ], + 'Agent Commissions' => [ $fsurl.'search/report_agent_commission.html' ], + 'Sales Person Commissions' => [ $fsurl.'search/report_sales_commission.html' ], ; tie my %report_financial, 'Tie::IxHash'; diff --git a/httemplate/search/report_sales_commission.html b/httemplate/search/report_sales_commission.html new file mode 100644 index 000000000..03527f6bd --- /dev/null +++ b/httemplate/search/report_sales_commission.html @@ -0,0 +1,24 @@ +<% include('/elements/header.html', 'Sales person commission report' ) %> + +
+ + + +<% include( '/elements/tr-select-agent.html' ) %> + +<% include( '/elements/tr-select-sales.html' ) %> + +<% include( '/elements/tr-input-beginning_ending.html', ) %> + +
+ +
+ + +<% include('/elements/footer.html') %> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Financial reports'); + + diff --git a/httemplate/search/sales_commission.html b/httemplate/search/sales_commission.html new file mode 100644 index 000000000..19e11889b --- /dev/null +++ b/httemplate/search/sales_commission.html @@ -0,0 +1,23 @@ +<& elements/search.html, + 'title' => 'Sales person commission report', + 'name_singular' => 'sales person', +# 'redirect' => sub { #my( $sales, $cgi ) = @); +# $saleslink; +# }, + 'header' => [ 'Sales person', 'Sales', 'Commission', ], + 'fields' => [ 'salesperson', sub{'XXX';}, sub{'XXX';}, ], + 'links' => [ '', $saleslink, $commissionlink ], + 'query' => { 'table' => 'sales', }, + 'count_query' => 'SELECT COUNT(*) FROM sales', + 'disableable' => 1, +&> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Financial reports'); + +my $saleslink = [ 'sales_pkg_class.html?salesnum=', 'salesnum' ]; + +my $commissionlink = ''; #XXX + + diff --git a/httemplate/search/sales_pkg_class.html b/httemplate/search/sales_pkg_class.html new file mode 100644 index 000000000..bb67c70a6 --- /dev/null +++ b/httemplate/search/sales_pkg_class.html @@ -0,0 +1,22 @@ +<& elements/search.html, + 'title' => $sales->salesperson. ' commission package classes', + 'name_singular' => 'package class', + 'header' => [ 'Package class', 'Sales', 'Commission', ], + 'fields' => [ 'classname', sub{'XXX';}, sub{'XXX';}, ], + #'links' + 'query' => { 'table' => 'sales_pkg_class', + 'hashref' => { 'salesnum' => $salesnum }, + }, + 'count_query' => "SELECT COUNT(*) FROM sales_pkg_class WHERE salesnum = $salesnum", +&> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Financial reports'); + +$cgi->param('salesnum') =~ /^(\d+)$/ or die 'illegal salesnum'; +my $salesnum = $1; +my $sales = qsearchs('sales', { 'salesnum'=>$salesnum } ) + or die 'unknown salesnum'; + +