summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2007-09-29 02:17:48 +0000
committerivan <ivan>2007-09-29 02:17:48 +0000
commit4b5c6ba830fe2845a0055e1fcf5af0c7e8b8cd0c (patch)
tree4f79e06b5214a13597258acc1d8e528cd884dc32
parent11f1a064f3618bac4078c8ae86654b3182ec0e07 (diff)
fix ambiguous agentnum errors in cust_event.html & report_tax.cgi (provide a table option in access_user::agentnums_sql so this is easy to fix for other reports too)
-rw-r--r--FS/FS/access_user.pm8
-rw-r--r--httemplate/search/cust_event.html6
-rwxr-xr-xhttemplate/search/report_tax.cgi2
3 files changed, 9 insertions, 7 deletions
diff --git a/FS/FS/access_user.pm b/FS/FS/access_user.pm
index 8e4ad46bd..e3a677b11 100644
--- a/FS/FS/access_user.pm
+++ b/FS/FS/access_user.pm
@@ -323,6 +323,8 @@ Options are passed as a hashref or a list. Available options are:
=item null_right - The fragment will also allow the selection of null agentnums if the current user has the provided access right
+=item table - Optional table name in which agentnum is being checked. Sometimes required to resolve 'column reference "agentnum" is ambiguous' errors.
+
=back
=cut
@@ -331,9 +333,11 @@ sub agentnums_sql {
my( $self ) = shift;
my %opt = ref($_[0]) ? %{$_[0]} : @_;
- my @agentnums = map { "agentnum = $_" } $self->agentnums;
+ my $agentnum = $opt{'table'} ? $opt{'table'}.'.agentnum' : 'agentnum';
+
+ my @agentnums = map { "$agentnum = $_" } $self->agentnums;
- push @agentnums, 'agentnum IS NULL'
+ push @agentnums, "$agentnum IS NULL"
if $opt{'null'}
|| ( $opt{'null_right'} && $self->access_right($opt{'null_right'}) );
diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html
index f9cce46ca..dc6fd0582 100644
--- a/httemplate/search/cust_event.html
+++ b/httemplate/search/cust_event.html
@@ -151,7 +151,7 @@ my $title = $cgi->param('failed')
my @search = ();
if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
- push @search, "agentnum = $1";
+ push @search, "cust_main.agentnum = $1";
#my $agent = qsearchs('agent', { 'agentnum' => $1 } );
#die "unknown agentnum $1" unless $agent;
}
@@ -183,9 +183,7 @@ if ( $cgi->param('pkgnum') =~ /^(\d+)$/ ) {
}
#here is the agent virtualization
-my $agent_sql = $curuser->agentnums_sql;
-$agent_sql =~ s/agentnum/cust_main.agentnum/g;
-push @search, $agent_sql;
+push @search, $curuser->agentnums_sql( 'table' => 'cust_main' );
my $where = 'WHERE '. join(' AND ', @search );
diff --git a/httemplate/search/report_tax.cgi b/httemplate/search/report_tax.cgi
index e97480540..bb9c8f433 100755
--- a/httemplate/search/report_tax.cgi
+++ b/httemplate/search/report_tax.cgi
@@ -226,7 +226,7 @@ if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {
my $agent = qsearchs('agent', { 'agentnum' => $1 } );
die "agent not found" unless $agent;
$agentname = $agent->agent;
- $where .= ' AND agentnum = '. $agent->agentnum;
+ $where .= ' AND cust_main.agentnum = '. $agent->agentnum;
}
my $gotcust = "