RT#34078: Payment History Report / Statement [Fixes for acl and text preview]
authorJonathan Prykop <jonathan@freeside.biz>
Thu, 9 Jul 2015 00:15:33 +0000 (19:15 -0500)
committerJonathan Prykop <jonathan@freeside.biz>
Thu, 9 Jul 2015 00:15:33 +0000 (19:15 -0500)
FS/FS/cust_main.pm
httemplate/misc/email-customer-statement.html
httemplate/misc/email-customers.html
httemplate/misc/process/email-customer-statement.html [new file with mode: 0644]
httemplate/view/cust_main/menu.html

index c6602c1..f55c349 100644 (file)
@@ -4253,6 +4253,8 @@ sub payment_history {
       'description' => 'Previous balance',
       'amount'      => sprintf("%.2f",$previous),
       'balance'     => sprintf("%.2f",$previous),
       'description' => 'Previous balance',
       'amount'      => sprintf("%.2f",$previous),
       'balance'     => sprintf("%.2f",$previous),
+      'date'        => $$opt{'start_date'},
+      'date_pretty' => $self->time2str_local('short', $$opt{'start_date'} ),
     };
     #false laziness with above
     foreach my $key ( qw(amount balance) ) {
     };
     #false laziness with above
     foreach my $key ( qw(amount balance) ) {
index 65660f1..92ce1c4 100644 (file)
@@ -5,13 +5,17 @@
       'no_search_fields'  => [ 'start_date', 'end_date' ],
       'alternate_form'    => $alternate_form,
       'post_search_hook'  => $post_search_hook,
       'no_search_fields'  => [ 'start_date', 'end_date' ],
       'alternate_form'    => $alternate_form,
       'post_search_hook'  => $post_search_hook,
+      'acl'               => $acl,
+      'process_url'       => 'process/email-customer-statement.html',
     )
  %>
 
 <%init>
 
     )
  %>
 
 <%init>
 
+my $acl = 'Resend invoices';
+
 die "access denied"
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
+  unless $FS::CurrentUser::CurrentUser->access_right($acl);
 
 my $alternate_form = sub {
   # this could maaaybe be a separate element, for cleanliness
 
 my $alternate_form = sub {
   # this could maaaybe be a separate element, for cleanliness
index 3327303..57f451f 100644 (file)
@@ -10,8 +10,12 @@ This may also be used as an element in other pages, enabling you to provide an
 alternate initial form while using this for search freezing/thawing and 
 preview/send actions, with the following options:
 
 alternate initial form while using this for search freezing/thawing and 
 preview/send actions, with the following options:
 
+acl - the access right to use (defaults to 'Bulk send customer notices')
+
 form_action - the URL to submit the form to
 
 form_action - the URL to submit the form to
 
+process_url - the URL for starting the JSRPC process
+
 title - the title of the page
 
 no_search_fields - arrayref of additional fields that are not search parameters
 title - the title of the page
 
 no_search_fields - arrayref of additional fields that are not search parameters
@@ -50,7 +54,7 @@ should be used to set msgnum or from/subject/html_body cgi params
     <% include('/elements/progress-init.html',
                  'OneTrueForm',
                  [ qw( search table from subject html_body text_body msgnum ) ],
     <% include('/elements/progress-init.html',
                  'OneTrueForm',
                  [ qw( search table from subject html_body text_body msgnum ) ],
-                 'process/email-customers.html',
+                 $process_url,
                  $pdest,
               )
     %>
                  $pdest,
               )
     %>
@@ -90,7 +94,7 @@ should be used to set msgnum or from/subject/html_body cgi params
 
       <INPUT TYPE="hidden" NAME="html_body" VALUE="<% $html_body |h %>">
       <TR>
 
       <INPUT TYPE="hidden" NAME="html_body" VALUE="<% $html_body |h %>">
       <TR>
-        <TD ALIGN="right" VALIGN="top">Message (HTML display): </TD>
+        <TH ALIGN="right" VALIGN="top">Message (HTML display): </TD>
         <TD CLASS="background" ALIGN="left"><% $html_body %></TD>
       </TR>
 
         <TD CLASS="background" ALIGN="left"><% $html_body %></TD>
       </TR>
 
@@ -101,8 +105,11 @@ should be used to set msgnum or from/subject/html_body cgi params
 %                     );
       <INPUT TYPE="hidden" NAME="text_body" VALUE="<% $text_body |h %>">
       <TR>
 %                     );
       <INPUT TYPE="hidden" NAME="text_body" VALUE="<% $text_body |h %>">
       <TR>
-        <TD ALIGN="right" VALIGN="top">Message (Text display): </TD>
-        <TD CLASS="background" STYLE="background-color:white" ALIGN="left"><PRE><% $text_body %></PRE></TD>
+        <TH ALIGN="right" VALIGN="top">Message (Text display): </TD>
+        <TD CLASS="background" STYLE="background-color:white" ALIGN="left">
+          <a href="javascript:void(0)" onclick="this.style.display='none'; document.getElementById('email-message-text').style.display=''">click to view</a>
+          <PRE id="email-message-text" style="display: none;"><% $text_body %></PRE>
+        </TD>
       </TR>
 
     </TABLE>
       </TR>
 
     </TABLE>
@@ -192,13 +199,16 @@ Template:
 
 my %opt = @_;
 
 
 my %opt = @_;
 
+$opt{'acl'} ||= 'Bulk send customer notices';
+
 die "access denied"
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices');
+  unless $FS::CurrentUser::CurrentUser->access_right($opt{'acl'});
 
 my $conf = FS::Conf->new;
 my @no_search_fields = qw( action table from subject html_body text_body popup url );
 
 my $form_action = $opt{'form_action'} || 'email-customers.html';
 
 my $conf = FS::Conf->new;
 my @no_search_fields = qw( action table from subject html_body text_body popup url );
 
 my $form_action = $opt{'form_action'} || 'email-customers.html';
+my $process_url = $opt{'process_url'} || 'process/email-customers.html';
 my $title = $opt{'title'} || 'Send customer notices';
 push( @no_search_fields, @{$opt{'no_search_fields'}} ) if $opt{'no_search_fields'};
 
 my $title = $opt{'title'} || 'Send customer notices';
 push( @no_search_fields, @{$opt{'no_search_fields'}} ) if $opt{'no_search_fields'};
 
diff --git a/httemplate/misc/process/email-customer-statement.html b/httemplate/misc/process/email-customer-statement.html
new file mode 100644 (file)
index 0000000..40a8a70
--- /dev/null
@@ -0,0 +1,9 @@
+<% $server->process %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Resend invoices');
+
+my $server = new FS::UI::Web::JSRPC 'FS::cust_main_Mixin::process_email_search_result', $cgi; 
+
+</%init>
index 9486c24..ab56bcf 100644 (file)
@@ -493,7 +493,7 @@ my @menu = (
                       uri_escape($cgi->self_url);
                      },
       condition   => sub { $invoicing_list_emailonly },
                       uri_escape($cgi->self_url);
                      },
       condition   => sub { $invoicing_list_emailonly },
-      acl         => [ 'View invoices', 'Bulk send customer notices' ],
+      acl         => 'Resend invoices',
     },
   ],
   [
     },
   ],
   [