diff options
author | Mark Wells <mark@freeside.biz> | 2016-08-02 11:41:51 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-08-02 13:17:07 -0700 |
commit | 34c878349988d97957f1d53427896a4d70afb392 (patch) | |
tree | 44dfc6243fad77753b4e3674ad9d92cd11ddf4d7 /httemplate/browse/commission_schedule.html | |
parent | 4f3d9e2ef5ce5305363ae426b87ed2b873b355d8 (diff) |
agent commission schedules for consecutive invoices, #71217
Diffstat (limited to 'httemplate/browse/commission_schedule.html')
-rw-r--r-- | httemplate/browse/commission_schedule.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/httemplate/browse/commission_schedule.html b/httemplate/browse/commission_schedule.html new file mode 100644 index 000000000..5a4f9840e --- /dev/null +++ b/httemplate/browse/commission_schedule.html @@ -0,0 +1,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') . + ': ' . $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> |