'Payment Type' => 'cust_payby',
'Current Balance' => 'current_balance',
'Agent Cust#' => 'agent_custid',
+ 'Agent' => 'agent_name',
+ 'Agent Cust# or Cust#' => 'display_custnum',
'Advertising Source' => 'referral',
);
$header2method{'Cust#'} = 'display_custnum'
if grep { $_ eq 'cust_payby' } @cust_fields;
push @fields, 'agent_custid';
+ push @fields, 'agentnum' if grep { $_ eq 'agent_name' } @cust_fields;
+
my @extra_fields = ();
if (grep { $_ eq 'current_balance' } @cust_fields) {
push @extra_fields, FS::cust_main->balance_sql . " AS current_balance";
}
- push @extra_fields, 'part_referral.referral AS referral'
+ push @extra_fields, 'part_referral_x.referral AS referral'
if grep { $_ eq 'referral' } @cust_fields;
map("cust_main.$_", @fields), @location_fields, @extra_fields;
=item join_cust_main [ TABLE[.CUSTNUM] ] [ LOCATION_TABLE[.LOCATIONNUM] ]
Returns an SQL join phrase for the FROM clause so that the fields listed
-in L<cust_sql_fields> will be available. Currently joins to cust_main
+in L</cust_sql_fields> will be available. Currently joins to cust_main
itself, as well as cust_location (under the aliases 'bill_location' and
-'ship_location') if address fields are needed. L<cust_header()> should have
+'ship_location') if address fields are needed. L</cust_header> should have
been called already.
All of these will be left joins; if you want to exclude rows with no linked
}
if ( !@cust_fields or grep { $_ eq 'referral' } @cust_fields ) {
- $sql .= ' LEFT JOIN part_referral ON (cust_main.refnum = part_referral.refnum) ';
+ $sql .= ' LEFT JOIN (select refnum, referral from part_referral) AS part_referral_x ON (cust_main.refnum = part_referral_x.refnum) ';
}
$sql;
use Carp;
use Storable qw(nfreeze);
use MIME::Base64;
-use JSON::XS;
+use Cpanel::JSON::XS;
use FS::UID qw(getotaker);
use FS::Record qw(qsearchs);
use FS::queue;
}
1;
-