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 | |
| parent | 82e249a5e6f02c2afa4e32b5a5fba3155b935a59 (diff) | |
continue sales person work: customer and package selection, commissions, reporting. RT#23402
Diffstat (limited to 'httemplate/edit')
| -rwxr-xr-x | httemplate/edit/agent.cgi | 37 | ||||
| -rw-r--r-- | httemplate/edit/process/sales.html | 35 | ||||
| -rwxr-xr-x | httemplate/edit/sales.html | 10 |
3 files changed, 48 insertions, 34 deletions
diff --git a/httemplate/edit/agent.cgi b/httemplate/edit/agent.cgi index b043d1efe..fe5b16417 100755 --- a/httemplate/edit/agent.cgi +++ b/httemplate/edit/agent.cgi @@ -141,38 +141,13 @@ </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> + <INPUT TYPE="submit" VALUE="<% $agent->agentnum ? "Apply changes" : "Add agent" %>"> </FORM> 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> |
