Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / search / cust_credit.html
index fb6ef83..dbf0ff3 100755 (executable)
@@ -56,33 +56,62 @@ if ($unapplied) {
 push @header, emt('Date'), 
               emt('By'),
               emt('Reason'),
-              FS::UI::Web::cust_header(),
+              emt('Info'),
               ;
 push @fields, sub { time2str('%b %d %Y', shift->_date ) },
               'otaker',
-              'reason',
-              \&FS::UI::Web::cust_fields,
+              'reason_only',
+              'addlinfo',
               ;
-push @sort_fields, '_date', 'otaker', 'reason';
-$align .= 'rll'.FS::UI::Web::cust_aligns(),
+push @sort_fields, '_date', 'otaker', 'reasonnum', 'addlinfo';
+$align .= 'rlll';
 push @links,  '',
               '',
               '',
-              ( map { $_ ne 'Cust. Status' ? $clink : '' }
-                         FS::UI::Web::cust_header()
-                   ),
+              '',
               ;
 push @color,  '',
               '',
               '',
-              FS::UI::Web::cust_colors(),
+              '',
               ;
 push @style,  '',
               '',
               '',
-              FS::UI::Web::cust_styles(),
+              '',
               ;
 
+# insert customer email after 'Reason' if this is a commission report
+if ( $cgi->param('commission_salesnum') or $cgi->param('commission_agentnum') ) {
+  my $sub_customer_email = sub {
+    my $cust_credit = shift;
+    my $cust_event = $cust_credit->cust_event or return '';
+    my $cust_X = $cust_event->cust_X or return '';
+    my $cust_main = $cust_X->cust_main or return '';
+    my ($email) = $cust_main->invoicing_list_emailonly;
+    return encode_entities("<$email>") if length($email);
+    '';
+  };
+  push @header, '';
+  push @fields, $sub_customer_email;
+  push @sort_fields, '';
+  $align .= 'l';
+  push @links, '';
+  push @color, '';
+  push @style, '';
+}
+
+# cust fields
+push @header, FS::UI::Web::cust_header();
+push @fields, \&FS::UI::Web::cust_fields;
+push @sort_fields, FS::UI::Web::cust_sort_fields;
+$align .= FS::UI::Web::cust_aligns();
+push @links, map { $_ ne 'Cust. Status' ? $clink : '' }
+                         FS::UI::Web::cust_header();
+push @color, FS::UI::Web::cust_colors();
+push @style, FS::UI::Web::cust_styles();
+
+
 my @search = ();
 my $addl_from = '';
 
@@ -97,11 +126,20 @@ if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
   $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';