diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-08-26 01:09:20 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-08-26 01:09:20 -0700 |
commit | eedfe58ba50912dbfb490aa47930bbc0ab9e3ac9 (patch) | |
tree | bd929f854b0de3dcd4a950716e7ac4db4183caed /httemplate/search/sales_commission.html | |
parent | 8bdf1185af6956707e1da314422613cf0deea3a0 (diff) |
continue sales person work: customer and package selection, commissions, reporting. RT#23402
Diffstat (limited to 'httemplate/search/sales_commission.html')
-rw-r--r-- | httemplate/search/sales_commission.html | 64 |
1 files changed, 59 insertions, 5 deletions
diff --git a/httemplate/search/sales_commission.html b/httemplate/search/sales_commission.html index 19e11889b..d7b7a88ad 100644 --- a/httemplate/search/sales_commission.html +++ b/httemplate/search/sales_commission.html @@ -1,12 +1,13 @@ <& elements/search.html, - 'title' => 'Sales person commission report', + 'title' => $title, 'name_singular' => 'sales person', # 'redirect' => sub { #my( $sales, $cgi ) = @); # $saleslink; # }, 'header' => [ 'Sales person', 'Sales', 'Commission', ], - 'fields' => [ 'salesperson', sub{'XXX';}, sub{'XXX';}, ], - 'links' => [ '', $saleslink, $commissionlink ], + 'fields' => [ 'salesperson', $sales_sub, $commission_sub, ], + 'links' => [ '', $sales_link, $commission_link ], + 'align' => 'lrr', 'query' => { 'table' => 'sales', }, 'count_query' => 'SELECT COUNT(*) FROM sales', 'disableable' => 1, @@ -16,8 +17,61 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Financial reports'); -my $saleslink = [ 'sales_pkg_class.html?salesnum=', 'salesnum' ]; +my $conf = new FS::Conf; -my $commissionlink = ''; #XXX +my $money_char = $conf->config('money_char') || '$'; + +my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi, ''); + +my $date_format = $conf->config('date_format') || '%m/%d/%Y'; + +my $title = 'Sales person commission'; +$title .= ': '. time2str($date_format, $beginning). ' to '. + time2str($date_format, $ending) + if $beginning; + +my $cust_main_sales = $cgi->param('cust_main_sales') eq 'Y' ? 'Y' : ''; + +my $sales_link = [ 'sales_pkg_class.html?'. + "begin=$beginning;". + "end=$ending;". + "cust_main_sales=$cust_main_sales;". + "salesnum=", + 'salesnum' + ]; + +my $sales_sub = sub { + my $sales = shift; + + #efficiency improvement: ask the db for a sum instead of all the records + my $total_recur = 0; + my @cust_bill_pkg = $sales->cust_bill_pkg( + $beginning, + $ending, + 'cust_main_sales' => $cust_main_sales, + ); + $total_recur += $_->recur foreach @cust_bill_pkg; + + $money_char. sprintf('%.2f', $total_recur); +}; + +my $commission_sub = sub { + my $sales = shift; + + #efficiency improvement: ask the db for a sum instead of all the records + my $total_credit = 0; + my @cust_credit = $sales->cust_credit( $beginning, $ending ); + $total_credit += $_->amount foreach @cust_credit; + + $money_char. sprintf('%.2f', $total_credit); +}; + +my $commission_link = [ 'cust_credit.html?'. + "begin=$beginning;". + "end=$ending;". + "cust_main_sales=$cust_main_sales;". + 'commission_salesnum=', + 'salesnum' + ]; </%init> |