X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fsales_commission.html;fp=httemplate%2Fsearch%2Fsales_commission.html;h=d7b7a88ad5eb9d3e10929291419e05b836a0e970;hb=eedfe58ba50912dbfb490aa47930bbc0ab9e3ac9;hp=19e11889b2fff3bc8a7db86722514dc270abb00b;hpb=8bdf1185af6956707e1da314422613cf0deea3a0;p=freeside.git 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' + ];