diff options
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-x | httemplate/edit/agent.cgi | 34 | ||||
-rw-r--r-- | httemplate/edit/process/sales.html | 35 | ||||
-rwxr-xr-x | httemplate/edit/sales.html | 10 |
3 files changed, 47 insertions, 32 deletions
diff --git a/httemplate/edit/agent.cgi b/httemplate/edit/agent.cgi index 2eddd30a4..15da2f043 100755 --- a/httemplate/edit/agent.cgi +++ b/httemplate/edit/agent.cgi @@ -141,35 +141,11 @@ </TABLE> <BR> -<FONT CLASS="fsinnerbox-title"><% mt('Commissions') |h %></FONT> -<TABLE CLASS="fsinnerbox"> - -% #surprising amount of false laziness w/ edit/process/agent.cgi -% my @pkg_class = qsearch('pkg_class', { 'disabled'=>'' }); -% foreach my $pkg_class ( '', @pkg_class ) { -% my %agent_pkg_class = ( 'agentnum' => $agent->agentnum, -% 'classnum' => $pkg_class ? $pkg_class->classnum : '' -% ); -% my $agent_pkg_class = -% qsearchs( 'agent_pkg_class', \%agent_pkg_class ) -% || new FS::agent_pkg_class \%agent_pkg_class; -% my $param = 'classnum'. $agent_pkg_class{classnum}; - - <TR> - <TD><INPUT TYPE = "text" - NAME = "<% $param %>" - VALUE = "<% $cgi->param($param) || $agent_pkg_class->commission_percent |h %>" - SIZE = 6 - MAXLENGTH = 7 - >% - </TD> - <TD><% $pkg_class ? $pkg_class->classname : mt('(no package class)') |h %> - </TD> - </TR> - -% } - -</TABLE> +<& /elements/table-commissions.html, + 'source_obj' => $agent, + 'link_table' => 'agent_pkg_class', + #'target_table' => 'pkg_class', +&> <BR> % if ( $conf->config('currencies') ) { 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> diff --git a/httemplate/edit/sales.html b/httemplate/edit/sales.html index 65cddfc13..763f86124 100755 --- a/httemplate/edit/sales.html +++ b/httemplate/edit/sales.html @@ -12,6 +12,16 @@ }, 'viewall_dir' => 'browse', 'agent_virt' => 1, + 'html_bottom' => sub { + my $sales = shift; + + '<BR>'. + include('/elements/table-commissions.html', + 'source_obj' => $sales, + 'link_table' => 'sales_pkg_class', + #'target_table' => 'pkg_class', + ); + }, &> <%init> |