summaryrefslogtreecommitdiff
path: root/httemplate/edit/process/commission_schedule.html
blob: 50e0371da87fa50eabf6cdde621b536ffbba1e1e (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
<& elements/process.html,
  'table'       => 'commission_schedule',
  'viewall_dir' => 'browse',
  'process_o2m' => {
   'table'  => 'commission_rate',
   'fields' => [qw( cycle amount percent )],
  },
  'precheck_callback' => $precheck,
  'debug' => 1,
&>
<%init>

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

my $precheck = sub {
  my $cgi = shift;
  $cgi->param('reasonnum') =~ /^(-?\d+)$/ or die "Illegal reasonnum";

  my ($reasonnum, $error) = $m->comp('/misc/process/elements/reason');
  if (!$reasonnum) {
    $error ||= 'Reason required'
  }
  $cgi->param('reasonnum', $reasonnum) unless $error;

  # remove rate entries with no cycle selected
  foreach my $k (grep /^commissionratenum\d+$/, $cgi->param) {
    if (! $cgi->param($k.'_cycle') ) {
      $cgi->delete($k);
    }
  }

  $error;
};

</%init>