invoice_sections_with_taxes per-agent, RT#79636
[freeside.git] / httemplate / edit / commission_schedule.html
1 <& elements/edit.html,
2      name_singular => 'schedule',
3      table         => 'commission_schedule',
4      viewall_dir   => 'browse',
5      fields        => [ 'schedulename',
6                         { field             => 'reasonnum',
7                           type              => 'select-reason',
8                           reason_class      => 'R',
9                         },
10                         { field             => 'basis',
11                           type              => 'select',
12                           options           => [ keys %FS::commission_schedule::basis_options ],
13                           labels            => { %FS::commission_schedule::basis_options },
14                         },
15                         { type => 'tablebreak-tr-title', value => 'Billing cycles' },
16                         { field             => 'commissionratenum',
17                           type              => 'commission_rate',
18                           o2m_table         => 'commission_rate',
19                           m2_label          => ' ',
20                           m2_error_callback => $m2_error_callback,
21                           colspan => 2,
22                         },
23                       ],
24      labels        => { 'schedulenum'       => '',
25                         'schedulename'      => 'Name',
26                         'basis'             => 'Based on',
27                         'commissionratenum' => '',
28                       },
29 &>
30 <%init>
31
32 my $m2_error_callback = sub {
33   my ($cgi, $object) = @_;
34
35   my @rates;
36   foreach my $k ( grep /^commissionratenum\d+/, $cgi->param ) {
37     my $num = $cgi->param($k);
38     my $cycle = $cgi->param($k.'_cycle');
39     my $amount = $cgi->param($k.'_amount');
40     my $percent = $cgi->param($k.'_percent');
41     if ($cycle > 0) {
42       push @rates, FS::commission_rate->new({
43         'commissionratenum' => $num,
44         'cycle'             => $cycle,
45         'amount'            => $amount,
46         'percent'           => $percent,
47       });
48     }
49   }
50   @rates;
51 };
52
53 </%init>