summaryrefslogtreecommitdiff
path: root/httemplate/browse/commission_schedule.html
blob: 5a4f9840ed5c5017d1b9a7c8828257dce8671c09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<& elements/browse.html,
  'title'       => "Commission schedules",
  'name'        => "commission schedules",
  'menubar'     => [ 'Add a new schedule' =>
                        $p.'edit/commission_schedule.html'
                   ],
  'query'       => { 'table'     => 'commission_schedule', },
  'count_query' => 'SELECT COUNT(*) FROM commission_schedule',
  'header'      => [ '#',
                     'Name',
                     'Rates',
                   ],
  'fields'      => [ 'schedulenum',
                     'schedulename',
                     $rates_sub,
                  ],
  'links'       => [ $link,
                     $link,
                     '',
                   ],
  'disable_total' => 1,
&>
<%init>

my $money_char = FS::Conf->new->config('money_char') || '$';

my $ordinal_sub = sub {
  # correct from 1 to 12...
  my $num = shift;
  $num == 1 ? '1st' :
  $num == 2 ? '2nd' :
  $num == 3 ? '3rd' :
  $num . 'th'
};

my $rates_sub = sub {
  my $schedule = shift;
  my @rates = sort { $a->cycle <=> $b->cycle } $schedule->commission_rate;
  my @data;
  my $basis = emt(lc( $FS::commission_schedule::basis_options{$schedule->basis} ));
  foreach my $rate (@rates) {
    my $desc = '';
    if ( $rate->amount > 0 ) {
      $desc = $money_char . sprintf('%.2f', $rate->amount);
    }
    if ( $rate->percent > 0 ) {
      $desc .= ' + ' if $desc;
      $desc .= $rate->percent . '% ' . emt('of') . ' ' . $basis;
    }
    next if !$desc;
    $desc = &$ordinal_sub($rate->cycle) . ' ' . emt('invoice') .
             ':&nbsp;' . $desc;

    push @data,
    [
      {
        'data'  => $desc,
        'align' => 'right',
      }
    ];
  }
  \@data;
};

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');

my $link = [ $p.'edit/commission_schedule.html?', 'schedulenum' ];

</%init>