enable CardFortress in test database, #71513
[freeside.git] / httemplate / search / cust_bill_pay.html
index 3c390e7..ff20458 100644 (file)
@@ -1,38 +1,48 @@
-<% include( 'elements/search.html',
+<& elements/search.html,
                 'title'       => $title,
                 'name'        => 'net payments',
                 'query'       => $sql_query,
                 'count_query' => $count_query,
                 'count_addl'  => [ '$%.2f total paid (net)', ],
                 'header'      => [ 'Net applied',
-                                   'to Invoice',
+                                   'Invoice',
+                                   'Invoice amount',
+                                   'Invoice date',
                                    'Payment',
+                                   'Payment amount',
+                                   'Payment date',
                                    'By',
                                    FS::UI::Web::cust_header(),
                                  ],
                 'fields'      => [
-                   sub { $money_char. sprintf('%.2f', shift->amount ) },
-                   sub { my $cbp = shift;
-                         '#'.$cbp->invnum. ' '.
-                         time2str('%b %d %Y', $cbp->cust_bill_date ).
-                         " ($money_char".
-                           sprintf('%.2f', $cbp->cust_bill_amount).
-                         ")" 
-                       },
-                   sub { my $cbp = shift;
-                         $cbp->cust_pay->payby_payinfo_pretty. ' '.
-                         time2str('%b %d %Y', $cbp->_date ).
-                         " ($money_char".
-                         sprintf('%.2f', $cbp->cust_pay_paid ).
-                         ")"
-                       },
-                   sub { shift->cust_pay->otaker },
+                   sub { $money_char.sprintf('%.2f', shift->amount ) },
+                   'invnum',
+                   sub { $money_char.sprintf('%.2f', shift->cust_bill_charged)},
+                   sub { time2str('%b %d %Y', shift->cust_bill_date ) },
+                   sub { shift->cust_pay->payby_payinfo_pretty },
+                   sub { $money_char.sprintf('%.2f', shift->cust_pay_paid)},
+                   sub { time2str('%b %d %Y', shift->cust_pay_date ) },
+                   sub { shift->cust_pay_otaker },
                    \&FS::UI::Web::cust_fields,
                 ],
-                'align' => 'rrrl'.FS::UI::Web::cust_aligns(),
+                'sort_fields' => [
+                  'amount',
+                  'invnum',
+                  'cust_bill_charged',
+                  'cust_bill_date',
+                  '',
+                  'cust_pay_paid',
+                  'cust_pay_date',
+                  '', 
+                ],
+                'align' => 'rrrrlrrl'.FS::UI::Web::cust_aligns(),
                 'links' => [
                              '',
                              $cust_bill_link,
+                             $cust_bill_link,
+                             $cust_bill_link,
+                             $cust_pay_link,
+                             $cust_pay_link,
                              $cust_pay_link,
                              '',
                              ( map { $_ ne 'Cust. Status' ? $cust_link : '' }
                              '',
                              '',
                              '',
+                             '',
+                             '',
+                             '',
+                             '',
                              FS::UI::Web::cust_colors(),
                            ],
                 'style' => [ 
                              '',
                              '',
                              '',
+                             '',
+                             '',
+                             '',
+                             '',
                              FS::UI::Web::cust_styles(),
                            ],
-          )
-%>
+          
+&>
 <%init>
 
 die "access denied"
@@ -74,6 +92,23 @@ if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
   $title = $agent->agent. " $title";
 }
 
+if ( $cgi->param('refnum') && $cgi->param('refnum') =~ /^(\d+)$/ ) {
+  push @search, "refnum = $1";
+  my $part_referral = qsearchs('part_referral', { 'refnum' => $1 } );
+  die "unknown refnum $1" unless $part_referral;
+  $title = $part_referral->referral. " $title";
+}
+
+# cust_classnum (false laziness w/ elements/cust_main_dayranges.html, prepaid_income.html, cust_bill_pkg.html, cust_bill_pkg_referral.html, unearned_detail.html, cust_credit.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;
+}
+
+
 my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
 push @search, "cust_bill._date >= $beginning ",
               "cust_bill._date <= $ending";
@@ -85,17 +120,19 @@ my $where = 'WHERE '. join(' AND ', @search);
 #
 my $count_query = 'SELECT COUNT(*), SUM(amount)
                    FROM cust_bill_pay
-                     LEFT JOIN cust_bill USING ( invnum  )
-                     LEFT JOIN cust_main USING ( custnum ) '.
+                     LEFT JOIN cust_bill USING ( invnum  ) '.
+                     FS::UI::Web::join_cust_main('cust_bill') .
                   $where;
 
 my $sql_query   = {
   'table'     => 'cust_bill_pay',
   'select'    => join(', ',
                    'cust_bill_pay.*',
-                   'cust_pay.paid       AS cust_pay_paid',
                    'cust_bill._date     AS cust_bill_date',
-                   #'cust_bill.charged   AS cust_bill_charged',
+                   'cust_bill.charged   AS cust_bill_charged',
+                   'cust_pay.paid       AS cust_pay_paid',
+                   'cust_pay._date      AS cust_pay_date',
+                   'cust_pay.otaker     AS cust_pay_otaker',
                    'cust_pay.custnum    AS custnum',
                    'cust_main.custnum   AS cust_main_custnum',
                    FS::UI::Web::cust_sql_fields(),
@@ -103,8 +140,8 @@ my $sql_query   = {
   'hashref'   => {},
   'extra_sql' => $where,
   'addl_from' => 'LEFT JOIN cust_bill   USING ( invnum  )
-                  LEFT JOIN cust_pay    USING ( paynum )
-                  LEFT JOIN cust_main ON ( cust_bill.custnum = cust_main.custnum )',
+                  LEFT JOIN cust_pay    USING ( paynum ) '.
+                  FS::UI::Web::join_cust_main('cust_bill')
 };
 
 my $cust_bill_link = sub {