continue sales person work: customer and package selection, commissions, reporting...
authorIvan Kohler <ivan@freeside.biz>
Mon, 26 Aug 2013 04:06:41 +0000 (21:06 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 26 Aug 2013 04:06:41 +0000 (21:06 -0700)
FS/FS/sales_pkg_class.pm
httemplate/elements/menu.html
httemplate/search/report_sales_commission.html [new file with mode: 0644]
httemplate/search/sales_commission.html [new file with mode: 0644]
httemplate/search/sales_pkg_class.html [new file with mode: 0644]

index 0fb7e86..90867a8 100644 (file)
@@ -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
index 15d2f53..b619aba 100644 (file)
@@ -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 (file)
index 0000000..03527f6
--- /dev/null
@@ -0,0 +1,24 @@
+<% include('/elements/header.html', 'Sales person commission report' ) %>
+
+<FORM ACTION="sales_commission.html">
+
+<TABLE BGCOLOR="#cccccc" CELLSPACING=0>
+
+<% include( '/elements/tr-select-agent.html' ) %>
+
+<% include( '/elements/tr-select-sales.html' ) %>
+
+<% include( '/elements/tr-input-beginning_ending.html', ) %>
+
+</TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Get Report">
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+</%init>
diff --git a/httemplate/search/sales_commission.html b/httemplate/search/sales_commission.html
new file mode 100644 (file)
index 0000000..19e1188
--- /dev/null
@@ -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
+
+</%init>
diff --git a/httemplate/search/sales_pkg_class.html b/httemplate/search/sales_pkg_class.html
new file mode 100644 (file)
index 0000000..bb67c70
--- /dev/null
@@ -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';
+
+</%init>