agent commission schedules for consecutive invoices, #71217
[freeside.git] / httemplate / browse / commission_schedule.html
1 <& elements/browse.html,
2   'title'       => "Commission schedules",
3   'name'        => "commission schedules",
4   'menubar'     => [ 'Add a new schedule' =>
5                         $p.'edit/commission_schedule.html'
6                    ],
7   'query'       => { 'table'     => 'commission_schedule', },
8   'count_query' => 'SELECT COUNT(*) FROM commission_schedule',
9   'header'      => [ '#',
10                      'Name',
11                      'Rates',
12                    ],
13   'fields'      => [ 'schedulenum',
14                      'schedulename',
15                      $rates_sub,
16                   ],
17   'links'       => [ $link,
18                      $link,
19                      '',
20                    ],
21   'disable_total' => 1,
22 &>
23 <%init>
24
25 my $money_char = FS::Conf->new->config('money_char') || '$';
26
27 my $ordinal_sub = sub {
28   # correct from 1 to 12...
29   my $num = shift;
30   $num == 1 ? '1st' :
31   $num == 2 ? '2nd' :
32   $num == 3 ? '3rd' :
33   $num . 'th'
34 };
35
36 my $rates_sub = sub {
37   my $schedule = shift;
38   my @rates = sort { $a->cycle <=> $b->cycle } $schedule->commission_rate;
39   my @data;
40   my $basis = emt(lc( $FS::commission_schedule::basis_options{$schedule->basis} ));
41   foreach my $rate (@rates) {
42     my $desc = '';
43     if ( $rate->amount > 0 ) {
44       $desc = $money_char . sprintf('%.2f', $rate->amount);
45     }
46     if ( $rate->percent > 0 ) {
47       $desc .= ' + ' if $desc;
48       $desc .= $rate->percent . '% ' . emt('of') . ' ' . $basis;
49     }
50     next if !$desc;
51     $desc = &$ordinal_sub($rate->cycle) . ' ' . emt('invoice') .
52              ':&nbsp;' . $desc;
53
54     push @data,
55     [
56       {
57         'data'  => $desc,
58         'align' => 'right',
59       }
60     ];
61   }
62   \@data;
63 };
64
65 die "access denied"
66   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
67
68 my $link = [ $p.'edit/commission_schedule.html?', 'schedulenum' ];
69
70 </%init>