default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / edit / process / sales.html
1 <& elements/process.html,
2      'table'            => 'sales',
3      'viewall_dir'      => 'browse',
4      'agent_virt'       => 1,
5      'noerror_callback' => $process_sales_pkg_class,
6 &>
7 <%init>
8
9 die "access denied"
10   unless $FS::CurrentUser::CurrentUser->access_right('Edit sales people');
11
12 #false laziness w/process/agent.cgi
13 my $process_sales_pkg_class = sub {
14   my( $cgi, $sales ) = @_;
15
16   #surprising amount of false laziness w/ edit/agent.cgi
17   my @pkg_class = qsearch('pkg_class', { 'disabled'=>'' });
18   foreach my $pkg_class ( '', @pkg_class ) {
19     my %sales_pkg_class = ( 'salesnum' => $sales->salesnum,
20                             'classnum' => $pkg_class ? $pkg_class->classnum : ''
21                           );
22     my $sales_pkg_class =
23       qsearchs( 'sales_pkg_class', \%sales_pkg_class )
24       || new FS::sales_pkg_class   \%sales_pkg_class;
25
26     my $param = 'classnum'. $sales_pkg_class{classnum};
27
28     $sales_pkg_class->commission_percent( $cgi->param($param) );
29     $sales_pkg_class->commission_duration( $cgi->param($param.'_duration') );
30
31     my $method = $sales_pkg_class->salespkgclassnum ? 'replace' : 'insert';
32
33     my $error = $sales_pkg_class->$method;
34     die $error if $error; #XXX push this down into sales.pm w/better/transactional error handling
35
36   }
37
38 };
39
40
41 </%init>
42