summaryrefslogtreecommitdiff
path: root/httemplate/edit/commission_schedule.html
blob: c76a3618e17a8c2d945486404be08567bb4106ae (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
<& elements/edit.html,
     name_singular => 'schedule',
     table         => 'commission_schedule',
     viewall_dir   => 'browse',
     fields        => [ 'schedulename',
                        { field             => 'reasonnum',
                          type              => 'select-reason',
                          reason_class      => 'R',
                        },
                        { field             => 'basis',
                          type              => 'select',
                          options           => [ keys %FS::commission_schedule::basis_options ],
                          labels            => { %FS::commission_schedule::basis_options },
                        },
                        { type => 'tablebreak-tr-title', value => 'Billing cycles' },
                        { field             => 'commissionratenum',
                          type              => 'commission_rate',
                          o2m_table         => 'commission_rate',
                          m2_label          => ' ',
                          m2_error_callback => $m2_error_callback,
                          colspan => 2,
                        },
                      ],
     labels        => { 'schedulenum'       => '',
                        'schedulename'      => 'Name',
                        'basis'             => 'Based on',
                        'commissionratenum' => '',
                      },
&>
<%init>

my $m2_error_callback = sub {
  my ($cgi, $object) = @_;

  my @rates;
  foreach my $k ( grep /^commissionratenum\d+/, $cgi->param ) {
    my $num = $cgi->param($k);
    my $cycle = $cgi->param($k.'_cycle');
    my $amount = $cgi->param($k.'_amount');
    my $percent = $cgi->param($k.'_percent');
    if ($cycle > 0) {
      push @rates, FS::commission_rate->new({
        'commissionratenum' => $num,
        'cycle'             => $cycle,
        'amount'            => $amount,
        'percent'           => $percent,
      });
    }
  }
  @rates;
};

</%init>