From dc797c21faf993cec12ae92c190043c4f8bb2ab2 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Sun, 18 Aug 2013 16:09:39 -0700 Subject: continue sales person work: customer and package selection, commissions, reporting. RT#23402 --- httemplate/edit/agent.cgi | 34 +++++----------------------------- httemplate/edit/process/sales.html | 35 ++++++++++++++++++++++++++++++++--- httemplate/edit/sales.html | 10 ++++++++++ 3 files changed, 47 insertions(+), 32 deletions(-) (limited to 'httemplate/edit') 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 @@
-<% mt('Commissions') |h %> - - -% #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}; - - - - - - -% } - -
% - <% $pkg_class ? $pkg_class->classname : mt('(no package class)') |h %> -
+<& /elements/table-commissions.html, + 'source_obj' => $agent, + 'link_table' => 'agent_pkg_class', + #'target_table' => 'pkg_class', +&>
% 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 + + } + +}; + + 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; + + '
'. + include('/elements/table-commissions.html', + 'source_obj' => $sales, + 'link_table' => 'sales_pkg_class', + #'target_table' => 'pkg_class', + ); + }, &> <%init> -- cgit v1.2.1