X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fsales.html;h=4befc02cc68962a4636967e13e24b9531de6bb94;hb=ff27c3f36240aee48ed50153dd5d8fe3ac3f2443;hp=b60276dcb8306663afb91ab7f800b1072a6ce2e2;hpb=d5fa12d1022afb592e80803971e90d18eac414e0;p=freeside.git diff --git a/httemplate/edit/process/sales.html b/httemplate/edit/process/sales.html index b60276dcb..4befc02cc 100644 --- a/httemplate/edit/process/sales.html +++ b/httemplate/edit/process/sales.html @@ -1,12 +1,42 @@ <& 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) ); + $sales_pkg_class->commission_duration( $cgi->param($param.'_duration') ); + + 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 + + } + +}; + +