& email-customers.html,
'form_action' => 'email-customer-statement.html',
'title' => 'Send statement to customer',
'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>
my $acl = 'Resend invoices';
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right($acl);
my $alternate_form = sub {
# this could maaaybe be a separate element, for cleanliness
# but it's really only for use by this page, and it's not overly complicated
my $noinit = 0;
return join("\n",
'
',
'',
'',
);
};
my $post_search_hook = sub {
my %opt = @_;
return unless $cgi->param('preview');
my $cust_main = qsearchs('cust_main',$opt{'search'})
or die "Could not find customer";
# so that the statement indicates the latest date
my $date_format = $opt{'conf'}->config('date_format') || '%m/%d/%Y';
$cgi->param('end_date', time2str($date_format, time))
unless $cgi->param('end_date');
# set from/subject/html_body based on date range
$cgi->param('from',
$opt{'conf'}->config('invoice_from')
);
# shortcut for common text
my $summary_text = $cust_main->name_short .
($cgi->param('start_date') ? ' from ' : '') .
$cgi->param('start_date') .
($cgi->param('end_date') ? ' through ' : '') .
$cgi->param('end_date');
$cgi->param('subject',
$opt{'conf'}->config('company_name') .
' statement for ' .
$summary_text
);
$cgi->param('body',
'
' .
$opt{'conf'}->config('company_name') .
' statement of charges and payments for ' .
$summary_text .
"