diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-08-17 22:34:45 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-08-17 22:34:45 -0700 |
commit | 34411d71bd3d03966408a9747b542a7d3df08c5d (patch) | |
tree | 13a0679908c22057ae5a43d01592f02f2bad6fa6 | |
parent | ec34946605aefd8455b4d7a8bd197d8eabe7ce3c (diff) |
continue sales person work: customer and package selection, commissions, reporting. RT#23402
-rw-r--r-- | FS/FS.pm | 2 | ||||
-rw-r--r-- | FS/FS/access_groupsales.pm | 153 | ||||
-rw-r--r-- | FS/t/access_groupsales.t | 5 | ||||
-rwxr-xr-x | httemplate/browse/sales.cgi | 100 | ||||
-rw-r--r-- | httemplate/edit/process/sales.cgi | 23 | ||||
-rwxr-xr-x | httemplate/edit/sales.cgi | 79 |
6 files changed, 0 insertions, 362 deletions
@@ -97,8 +97,6 @@ L<FS::access_usergroup> - Employee group membership L<FS::access_groupagent> - Group reseller access -L<FS::access_groupsales> - Group sales access - L<FS::access_right> - Access rights L<FS::svc_acct_pop> - POP (Point of Presence, not Post diff --git a/FS/FS/access_groupsales.pm b/FS/FS/access_groupsales.pm deleted file mode 100644 index 31b07d9f8..000000000 --- a/FS/FS/access_groupsales.pm +++ /dev/null @@ -1,153 +0,0 @@ -package FS::access_groupsales; - -use strict; -use base qw( FS::Record ); -use FS::Record qw( qsearch qsearchs ); - -=head1 NAME - -FS::access_groupsales - Object methods for access_groupsales records - -=head1 SYNOPSIS - - use FS::access_groupsales; - - $record = new FS::access_groupsales \%hash; - $record = new FS::access_groupsales { 'column' => 'value' }; - - $error = $record->insert; - - $error = $new_record->replace($old_record); - - $error = $record->delete; - - $error = $record->check; - -=head1 DESCRIPTION - -An FS::access_groupsales object represents an example. FS::access_groupsales inherits from -FS::Record. The following fields are currently supported: - -=over 4 - -=item groupsalesnum - -primary key - -=item groupnum - -groupnum - -=item salesnum - -salesnum - - -=back - -=head1 METHODS - -=over 4 - -=item new HASHREF - -Creates a new example. To add the example to the database, see L<"insert">. - -Note that this stores the hash reference, not a distinct copy of the hash it -points to. You can ask the object for a copy with the I<hash> method. - -=cut - -# the new method can be inherited from FS::Record, if a table method is defined - -sub table { 'access_groupsales'; } - -=item insert - -Adds this record to the database. If there is an error, returns the error, -otherwise returns false. - -=cut - -# the insert method can be inherited from FS::Record - -=item delete - -Delete this record from the database. - -=cut - -# the delete method can be inherited from FS::Record - -=item replace OLD_RECORD - -Replaces the OLD_RECORD with this one in the database. If there is an error, -returns the error, otherwise returns false. - -=cut - -# the replace method can be inherited from FS::Record - -=item check - -Checks all fields to make sure this is a valid example. If there is -an error, returns the error, otherwise returns false. Called by the insert -and replace methods. - -=cut - -# the check method should currently be supplied - FS::Record contains some -# data checking routines - -sub check { - my $self = shift; - - my $error = - $self->ut_numbern('groupsalesnum') - || $self->ut_number('groupnum') - || $self->ut_number('salesnum') - ; - return $error if $error; - - $self->SUPER::check; -} - -=back - -=item sales - -Returns the associated FS::agent object. - -=cut - -sub sales { - my $self = shift; - qsearchs('sales', { 'salesnum' => $self->salesnum } ); -} - -=item access_group - -Returns the associated FS::access_group object. - -=cut - -sub access_group { - my $self = shift; - qsearchs('access_group', { 'groupnum' => $self->groupnum } ); -} - -=back - - -=head1 BUGS - -The author forgot to customize this manpage. - -=head1 SEE ALSO - -L<FS::Record>, schema.html from the base documentation. - -=cut - -1; - diff --git a/FS/t/access_groupsales.t b/FS/t/access_groupsales.t deleted file mode 100644 index 50993cf26..000000000 --- a/FS/t/access_groupsales.t +++ /dev/null @@ -1,5 +0,0 @@ -BEGIN { $| = 1; print "1..1\n" } -END {print "not ok 1\n" unless $loaded;} -use FS::access_groupsales; -$loaded=1; -print "ok 1\n"; diff --git a/httemplate/browse/sales.cgi b/httemplate/browse/sales.cgi deleted file mode 100755 index af098121d..000000000 --- a/httemplate/browse/sales.cgi +++ /dev/null @@ -1,100 +0,0 @@ -<% include("/elements/header.html",'Sales Listing', menubar( - 'Add new sales person' => '../edit/sales.cgi' -)) %> -Sales people bring in business.<BR><BR> -% if ( dbdef->table('sales')->column('disabled') ) { - - <% $cgi->param('showdisabled') - ? do { $cgi->param('showdisabled', 0); - '( <a href="'. $cgi->self_url. '">hide disabled sales people</a> )'; } - : do { $cgi->param('showdisabled', 1); - '( <a href="'. $cgi->self_url. '">show disabled sales people</a> )'; } - %> -% } - - -<% include('/elements/table-grid.html') %> -% my $bgcolor1 = '#eeeeee'; -% my $bgcolor2 = '#ffffff'; -% my $bgcolor = ''; - -<TR> - <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% ( $cgi->param('showdisabled') || !dbdef->table('sales')->column('disabled') ) ? 2 : 3 %>>Sales person</TH> - <TH CLASS="grid" BGCOLOR="#cccccc">Agent</TH> - <TH CLASS="grid" BGCOLOR="#cccccc">Access Groups</TH> -</TR> - -%foreach my $sales ( sort { -% $a->getfield('salesnum') cmp $b->getfield('salesnum') -%} qsearch('sales', \%search ) ) { -% -% if ( $bgcolor eq $bgcolor1 ) { -% $bgcolor = $bgcolor2; -% } else { -% $bgcolor = $bgcolor1; -% } - - <TR> - - <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> - <A HREF="<%$p%>edit/sales.cgi?<% $sales->salesnum %>"><% $sales->salesnum %></A> - </TD> - - <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> - <A HREF="<%$p%>edit/sales.cgi?<% $sales->salesnum %>"><% $sales->salesperson %></A> - </TD> - -% if ( ! $cgi->param('showdisabled') ) { - <TD CLASS="grid" BGCOLOR="<% $bgcolor %>" ALIGN="center"> - <% $sales->disabled ? '<FONT COLOR="#FF0000"><B>DISABLED</B></FONT>' - : '<FONT COLOR="#00CC00"><B>Active</B></FONT>' - %> - </TD> -% } - -% my ($agent) = qsearch('agent', { 'agentnum' => $sales->agentnum }); - - <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> - <A HREF="<%$p%>edit/sales.cgi?<% $sales->agentnum %>"><% $sales->agentnum %></A> - <A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">(<% $agent->agent %>)<BR> - </TD> - - <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> -% foreach my $access_group ( -% map $_->access_group, -% qsearch('access_groupsales', { 'salesnum' => $sales->salesnum }) -% ) { - <A HREF="<%$p%>edit/access_group.html?<% $access_group->groupnum %>"><% $access_group->groupname |h %><BR> -% } - </TD> - - </TR> -% } - - </TABLE> - -<SCRIPT TYPE="text/javascript"> - function areyousure(what, href) { - if ( confirm("Are you sure you want to " + what + "?") == true ) - window.location.href = href; - } -</SCRIPT> - - </BODY> -</HTML> -<%init> - -die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); - -my %search; -if ( $cgi->param('showdisabled') - || !dbdef->table('agent')->column('disabled') ) { - %search = (); -} else { - %search = ( 'disabled' => '' ); -} - -my $conf = new FS::Conf; - -</%init> diff --git a/httemplate/edit/process/sales.cgi b/httemplate/edit/process/sales.cgi deleted file mode 100644 index edef4d65c..000000000 --- a/httemplate/edit/process/sales.cgi +++ /dev/null @@ -1,23 +0,0 @@ -<% include( 'elements/process.html', - 'table' => 'sales', - 'viewall_dir' => 'browse', - 'viewall_ext' => 'cgi', - 'debug' => '1', - 'process_m2m' => { 'link_table' => 'access_groupsales', - 'target_table' => 'access_group', - }, - 'edit_ext' => 'cgi', - ) -%> -<%init> - -die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); - -if ( FS::Conf->new->exists('disable_acl_changes') ) { - errorpage('ACL changes disabled in public demo.'); - die "shouldn't be reached"; -} - -</%init> - diff --git a/httemplate/edit/sales.cgi b/httemplate/edit/sales.cgi deleted file mode 100755 index 3497de505..000000000 --- a/httemplate/edit/sales.cgi +++ /dev/null @@ -1,79 +0,0 @@ -<% include("/elements/header.html","$action Sales Person", menubar( - 'View all sales people' => $p. 'browse/sales.cgi', -)) %> - -<% include('/elements/error.html') %> - -<FORM METHOD = POST - ACTION = "<%popurl(1)%>process/sales.cgi" -> - -<INPUT TYPE="hidden" NAME="salesnum" VALUE="<% $sales->salesnum %>"> -Sales #<% $sales->salesnum ? $sales->salesnum : "(NEW)" %> - -<% &ntable("#cccccc", 2, '') %> - - <TR> - <TH ALIGN="right">Sales</TH> - <TD><INPUT TYPE="text" NAME="salesperson" SIZE=32 VALUE="<% $sales->salesperson %>"></TD> - </TR> - - <TR> - <TD ALIGN="right"><% emt('Agent') %></TD> - <TD> - <& /elements/select-agent.html, - 'curr_value' => $sales->salesnum, - 'disable_empty' => 1, - &> - </TD> - </TR> - - <TR> - <TD ALIGN="right">Disable</TD> - <TD><INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $sales->disabled eq 'Y' ? ' CHECKED' : '' %>></TD> - </TR> - - <TR> - <TD ALIGN="right">Access Groups</TD> - <TD><% include('/elements/checkboxes-table.html', - 'source_obj' => $sales, - 'link_table' => 'access_groupsales', - 'target_table' => 'access_group', - 'name_col' => 'groupname', - 'target_link' => $p. 'edit/access_group.html?', - ) - %> - </TD> - </TR> - -</TABLE> - -<BR> -<INPUT TYPE="submit" VALUE="<% $sales->salesnum ? "Apply changes" : "Add sales" %>"> - -</FORM> - -<% include('/elements/footer.html') %> - -<%init> - -die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); - -my $sales; -if ( $cgi->param('error') ) { - $sales = new FS::sales ( { - map { $_, scalar($cgi->param($_)) } fields('sales') - } ); -} elsif ( $cgi->keywords ) { - my($query) = $cgi->keywords; - $query =~ /^(\d+)$/; - $sales = qsearchs( 'sales', { 'salesnum' => $1 } ); -} else { #adding - $sales = new FS::sales {}; -} -my $action = $sales->salesnum ? 'Edit' : 'Add'; - -my $conf = new FS::Conf; - -</%init> |