diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-08-18 16:09:57 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-08-18 16:09:57 -0700 |
commit | 48c5c17b6ca02cd04f1dd5deb530738f2409c585 (patch) | |
tree | 6e1ecc24bc642d92738cd217ef3f452237d3f57a /httemplate/edit/process/sales.html | |
parent | 82e249a5e6f02c2afa4e32b5a5fba3155b935a59 (diff) |
continue sales person work: customer and package selection, commissions, reporting. RT#23402
Diffstat (limited to 'httemplate/edit/process/sales.html')
-rw-r--r-- | httemplate/edit/process/sales.html | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/httemplate/edit/process/sales.html b/httemplate/edit/process/sales.html index b60276dcb..1bb1797df 100644 --- a/httemplate/edit/process/sales.html +++ b/httemplate/edit/process/sales.html @@ -1,12 +1,41 @@ <& elements/process.html, - 'table' => 'sales', - 'viewall_dir' => 'browse', - 'agent_virt' => 1, + 'table' => 'sales', + 'viewall_dir' => 'browse', + 'agent_virt' => 1, + 'noerror_callback' => $process_sales_pkg_class, &> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Edit sales people'); +#false laziness w/process/agent.cgi +my $process_sales_pkg_class = sub { + my( $cgi, $sales ) = @_; + + #surprising amount of false laziness w/ edit/agent.cgi + my @pkg_class = qsearch('pkg_class', { 'disabled'=>'' }); + foreach my $pkg_class ( '', @pkg_class ) { + my %sales_pkg_class = ( 'salesnum' => $sales->salesnum, + 'classnum' => $pkg_class ? $pkg_class->classnum : '' + ); + my $sales_pkg_class = + qsearchs( 'sales_pkg_class', \%sales_pkg_class ) + || new FS::sales_pkg_class \%sales_pkg_class; + + my $param = 'classnum'. $sales_pkg_class{classnum}; + + $sales_pkg_class->commission_percent( $cgi->param($param) ); + + my $method = $sales_pkg_class->salespkgclassnum ? 'replace' : 'insert'; + + my $error = $sales_pkg_class->$method; + die $error if $error; #XXX push this down into sales.pm w/better/transactional error handling + + } + +}; + + </%init> |