'reason',
\&FS::UI::Web::cust_fields,
;
-push @sort_fields, '_date', 'otaker', 'reason';
-$align .= 'rll'.FS::UI::Web::cust_aligns(),
+push @sort_fields, '_date', 'otaker', 'reason', FS::UI::Web::cust_sort_fields();
+$align .= 'rll'.FS::UI::Web::cust_aligns();
push @links, '',
'',
'',
;
my @search = ();
+my $addl_from = '';
if ( $cgi->param('usernum') =~ /^(\d+)$/ ) {
push @search, "cust_credit.usernum = $1";
$title = $agent->agent. " $title";
}
+if ( $cgi->param('credbatch') =~ /^([\w\-\/\.\:]+)$/ ) {
+ push @search, "cust_credit.credbatch = '$1'";
+}
+
+# commission_salesnum
+if ( $cgi->param('commission_salesnum') =~ /^(\d+)$/ ) {
+ push @search, "commission_salesnum = $1";
+}
+
+# commission agentnum
+if ( $cgi->param('commission_agentnum') =~ /^(\d+)$/ ) {
+ push @search, "commission_agentnum = $1";
+}
+
+# commission_classnum
+if ( grep { $_ eq 'commission_classnum' } $cgi->param ) {
+ $cgi->param('commission_classnum') =~ /^(\d*)$/ or die 'guru meditation #13';
+ my $classnum = $1;
+ push @search, "part_pkg.classnum ". ( $classnum ? " = $classnum"
+ : " IS NULL " );
+
+ $addl_from .=
+ ' LEFT JOIN cust_pkg ON ( commission_pkgnum = cust_pkg.pkgnum ) '.
+ ' LEFT JOIN part_pkg USING ( pkgpart ) ';
+}
+
if ( $cgi->param('refnum') && $cgi->param('refnum') =~ /^(\d+)$/ ) {
push @search, "refnum = $1";
my $part_referral = qsearchs('part_referral', { 'refnum' => $1 } );
$title = $part_referral->referral. " $title";
}
-if ( $cgi->param('cust_classnum') ) {
- my @classnums = grep /^\d+$/, $cgi->param('cust_classnum');
- push @search, 'cust_main.classnum IN('.join(',',@classnums).')'
+
+# cust_classnum (false laziness w/ elements/cust_main_dayranges.html, elements/cust_pay_or_refund.html, prepaid_income.html, cust_bill_pay.html, cust_bill_pkg.html, cust_bill_pkg_referral.html, unearned_detail.html, cust_credit_refund.html, cust_main::Search::search_sql)
+if ( grep { $_ eq 'cust_classnum' } $cgi->param ) {
+ my @classnums = grep /^\d*$/, $cgi->param('cust_classnum');
+ push @search, 'COALESCE( cust_main.classnum, 0) IN ( '.
+ join(',', map { $_ || '0' } @classnums ).
+ ' )'
if @classnums;
}
push @search, FS::UI::Web::parse_lt_gt($cgi, 'amount' );
#here is the agent virtualization
-push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
+push @search, $FS::CurrentUser::CurrentUser->agentnums_sql(table=>'cust_main');
my @select = (
'cust_credit.*',
my $count_query = 'SELECT COUNT(*), SUM(amount) ';
$count_query .= ', SUM(' . FS::cust_credit->unapplied_sql . ') ' if $unapplied;
-$count_query .= 'FROM cust_credit LEFT JOIN cust_main USING ( custnum ) '.
+$count_query .= 'FROM cust_credit'.
+ $addl_from. FS::UI::Web::join_cust_main('cust_credit').
$where;
my @count_addl = ( $money_char.'%.2f total credited (gross)' );
'select' => join(', ',@select),
'hashref' => {},
'extra_sql' => $where,
- 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
+ 'addl_from' => $addl_from. FS::UI::Web::join_cust_main('cust_credit')
};
</%init>