continue sales person work: customer and package selection, commissions, reporting...
[freeside.git] / httemplate / browse / sales.html
1 <& elements/browse.html,
2      'title'              => 'Sales People',
3      'name_singular'      => 'sales person',
4      'menubar'            => ['Add a new sales person' => $p.'edit/sales.html'],
5      'query'              => { 'table' => 'sales' },
6      'count_query'        => 'SELECT COUNT(*) FROM sales',
7      'header'             => \@header,
8      'fields'             => \@fields,
9      'links'              => \@links,
10      'disableable'        => 1,
11      'disabled_statuspos' => 1,
12      'agent_virt'         => 1,
13 &>
14 <%init>
15
16 my $curuser = $FS::CurrentUser::CurrentUser;
17 die "access denied" unless $curuser->access_right('Edit sales people');
18
19 #Sales people bring in business.<BR><BR>
20
21 my @header = ( 'Sales person' );
22 my @fields = ( 'salesperson' );
23 my @links  = ( [$p.'edit/sales.html?', 'salesnum'] );
24
25 if ( $curuser->access_right('Configuration') ) {
26   push @header, 'Agent';
27   push @fields, 'agent_name';
28   push @links,  [ $p.'edit/agent.cgi?', 'agentnum' ];
29 }
30
31 push @header, 'Commissions';
32 push @fields, sub {
33
34   my $sales = shift;
35
36   #started out as false laziness w/browse/agent.cgi
37   #  (which said surprising amount of false laziness w/ edit/process/agent.cgi)
38   # but this now returns an edit.html data structure that renders to a table
39   #  instead of HTML
40
41   my @pkg_class = qsearch('pkg_class', { 'disabled'=>'' });
42
43   [
44     map {
45           my %sales_pkg_class = ( 'salesnum' => $sales->salesnum,
46                                   'classnum' => $_ ? $_->classnum : ''
47                                 );
48           my $sales_pkg_class =
49             qsearchs( 'sales_pkg_class', \%sales_pkg_class )
50             || new FS::sales_pkg_class   \%sales_pkg_class;
51           #my $param = 'classnum'. $sales_pkg_class{classnum};
52
53           [
54             { align => 'right',
55               data  => ($sales_pkg_class->commission_percent || 0). '%',
56             },
57             { align => 'left',
58               data  => '&nbsp;'. encode_entities(
59                          $_ ? $_->classname : mt('(no package class)')
60                        ),
61             },
62           ];
63
64         }
65       ( '', @pkg_class )
66
67   ];
68
69 };
70 #push @links, '';
71
72 </%init>