RT#23598: Feature Request - Email notice to A/R Report Results
[freeside.git] / httemplate / search / elements / cust_main_dayranges.html
index cf2d495..73a429f 100644 (file)
@@ -2,10 +2,11 @@
 
 Example:
 
-  include( 'elements/cust_main_dayranges.html',
+  <& elements/cust_main_dayranges.html,
                  'title'       => 'Accounts Receivable Aging Summary',
                  'range_sub'   => $mysub,
-         )
+                 'email_link'  => 1,  #adds an action column with an email link if true
+  &>
 
   my $mysub = sub {
     my( $start, $end ) = @_;
@@ -19,23 +20,19 @@ Example:
                  'name'        => 'customers',
                  'query'       => $sql_query,
                  'count_query' => $count_sql,
-                 'header'      => [ 
-                                    FS::UI::Web::cust_header(),
+                 'header'      => [
+                                    @cust_header,
                                     '0-30',
                                     '30-60',
                                     '60-90',
                                     '90+',
                                     emt('Total'),
                                     @pay_head,
+                                    @act_header,
                                   ],
                  'footer'      => [
                                     'Total',
-                                    ( map '',
-                                          ( 1 .. 
-                                            scalar(FS::UI::Web::cust_header()-1)
-                                          ),
-                                    ),
-                                    
+                                    ( map '',( 1 .. $#cust_header ),),
                                     sprintf( $money_char.'%.2f',
                                              $row->{'rangecol_0_30'} ),
                                     sprintf( $money_char.'%.2f',
@@ -44,9 +41,10 @@ Example:
                                              $row->{'rangecol_60_90'} ),
                                     sprintf( $money_char.'%.2f',
                                              $row->{'rangecol_90_0'} ),
-                                    sprintf( '<b>'. $money_char.'%.2f'. '</b>',
+                                    sprintf( '<b>'.$money_char.'%.2f</b>',
                                              $row->{'rangecol_0_0'} ),
                                     ('') x @pay_labels,
+                                    @act_blank,
                                   ],
                  'fields'      => [
                                     FS::UI::Web::cust_fields_subs(),
@@ -56,10 +54,11 @@ Example:
                                     format_rangecol('90_0'),
                                     format_rangecol('0_0'),
                                     @pay_labels,
+                                    @act_fields,
                                   ],
                  'links'       => [
                                     ( map { $_ ne 'Cust. Status' ? $clink : '' }
-                                          FS::UI::Web::cust_header()
+                                          @cust_header
                                     ),
                                     '',
                                     '',
@@ -67,20 +66,33 @@ Example:
                                     '',
                                     '',
                                     @pay_links,
+                                    @act_blank,
                                   ],
+                 'link_onclicks' => [ ( map '', @cust_header ),
+                                      '', '', '', '', '', 
+                                      ( map '', @pay_labels ),
+                                      @act_link_onclicks,
+                                    ],
                  'align'       => FS::UI::Web::cust_aligns(). 
                                    'rrrrr'.
                                   ('c' x @pay_labels),
-                 'size'        => [ ( map '', FS::UI::Web::cust_header() ),
+                                  @act_align,
+                 'size'        => [ ( map '', @cust_header ),
                                     #'-1', '', '', '', '',  '', ],
                                     '', '', '', '', '',  '', 
                                     ( map '', @pay_labels ),
+                                    @act_blank,
                                     ],
                  'style'       => [ FS::UI::Web::cust_styles(),
                                     #'b', '', '', '', '', 'b', ],
                                     '', '', '', '', 'b', 
                                     ( map '', @pay_labels ),
+                                    @act_blank,
                                     ],
+                 'xls_format'  => [ (map '', FS::UI::Web::cust_styles),
+                                    '', '', '', '', { bold => 1 },
+                                    @act_blank,
+                                  ],
                  'color'       => [
                                     FS::UI::Web::cust_colors(),
                                     '',
@@ -90,11 +102,13 @@ Example:
                                     '',
                                     '',
                                     ( map '', @pay_labels ),
+                                    @act_blank,
                                   ],
                %opt,
 &>
 <%init>
 
+my @cust_header = FS::UI::Web::cust_header($cgi->param('cust_fields'));
 my %opt = @_;
 
 #actually need to auto-generate other things too for a passed-in ranges to work
@@ -236,6 +250,19 @@ if($opt{'payment_links'} && $curuser->access_right('Process payment') && @payby)
                          @payby );
 }
 
+my (@act_header, @act_fields, @act_link_onclicks, @act_align, @act_blank);
+if (delete($opt{'email_links'})) {
+  push @act_header, 'Actions';
+  push @act_fields, sub { 'send email' };
+  push @act_link_onclicks, sub {
+    my $row = shift;
+    my $custnum = $row->custnum;
+    return qq!window.open('${p}misc/email-customers.html?table=cust_main&custnum=$custnum','_blank')!;
+  };
+  push @act_align, 'l';
+  push @act_blank, '';
+}
+
 </%init>
 <%once>