[freeside-commits] branch FREESIDE_3_BRANCH updated. 67067dc8ca1c3cd57e2a310b98b40754a45f156f

Ivan ivan at 420.am
Thu May 16 13:31:10 PDT 2013


The branch, FREESIDE_3_BRANCH has been updated
       via  67067dc8ca1c3cd57e2a310b98b40754a45f156f (commit)
      from  b8c14d86d1660b23159a3a76c716ea93cb65162b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 67067dc8ca1c3cd57e2a310b98b40754a45f156f
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu May 16 13:31:09 2013 -0700

    statement link display by default, better label, statements say "statement" and have no dates/numbers, RT#23148

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 9167e99..42b4b8f 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -5243,13 +5243,6 @@ and customer address. Include units.',
     'select_enum' => [ 'Classic', 'Recurring' ],
   },
 
-  {
-    'key'         => 'cust_main-print_statement_link',
-    'section'     => 'UI',
-    'description' => 'Show a link to download a current statement for the customer.',
-    'type'        => 'checkbox',
-  },
-
   { 
     'key'         => 'username-pound',
     'section'     => 'username',
diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index b3d3cf2..be9d68a 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -106,7 +106,7 @@ sub print_latex {
   $params{'time'} = $today if $today;
   $params{'template'} = $template if $template;
   $params{$_} = $opt{$_} 
-    foreach grep $opt{$_}, qw( unsquelch_cdr notice_name );
+    foreach grep $opt{$_}, qw( unsquelch_cdr notice_name no_date no_number );
 
   $template ||= $self->_agent_template
     if $self->can('_agent_template');
@@ -445,9 +445,14 @@ sub print_generic {
     'agent'           => &$escape_function($cust_main->agent->agent),
 
     #invoice/quotation info
-    'invnum'          => $self->invnum,
+    'no_number'       => $params{'no_number'},
+    'invnum'          => ( $params{'no_number'} ? '' : $self->invnum ),
     'quotationnum'    => $self->quotationnum,
-    'date'            => time2str($date_format, $self->_date),
+    'no_date'         => $params{'no_date'},
+    'date'            => ( $params{'no_date'}
+                             ? ''
+                             : time2str($date_format, $self->_date)
+                         ),
     'today'           => time2str($date_format_long, $today),
     'terms'           => $self->terms,
     'template'        => $template, #params{'template'},
diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html
index 915be49..c7bf374 100644
--- a/httemplate/view/cust_main/payment_history.html
+++ b/httemplate/view/cust_main/payment_history.html
@@ -141,10 +141,9 @@
 
 %# invoice reports, combined statement
 % if ( $curuser->access_right('List invoices') ) { 
-%   if ( $conf->exists('cust_main-print_statement_link')
-%        and $num_cust_bill > 0 ) {
+%   if ( $num_cust_bill > 0 ) {
   <A HREF="<% $p %>view/cust_main_statement-pdf.cgi?<% $custnum %>"><%
-  mt('Print a current statement') |h %></A>
+  mt('Download typeset statement PDF') |h %></A>
   <BR>
 %   }
   <A HREF="<% $p %>search/report_cust_bill.html?custnum=<% $custnum %>"><% mt('Invoice reports') |h %></A>
diff --git a/httemplate/view/cust_main_statement-pdf.cgi b/httemplate/view/cust_main_statement-pdf.cgi
index 7c2c207..79110ee 100755
--- a/httemplate/view/cust_main_statement-pdf.cgi
+++ b/httemplate/view/cust_main_statement-pdf.cgi
@@ -1,29 +1,34 @@
+<% $pdf %>\
 <%doc>
 Like view/cust_statement-pdf.cgi, but for viewing/printing the implicit 
 statement containing all of a customer's invoices.  Slightly redundant.
 I don't see the need to create an equivalent to view/cust_statement.html 
 for this case, but one can be added if necessary.
 </%doc>
-<% $pdf %>
 <%init>
 
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
 
-#untaint statement
 my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)$/;
-my $templatename = $2 || 'statement'; #XXX configure... via event??  eh..
-my $custnum = $3;
+$query =~ /^(\d+)$/;
+my $custnum = $1;
 
+#mostly for the agent-virt, i guess.  could probably bolt it onto the cust_bill
+# search
 my $cust_main = qsearchs({
   'select'    => 'cust_main.*',
   'table'     => 'cust_main',
   'hashref'   => { 'custnum' => $custnum },
   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
-});
-die "Customer #$custnum not found!" unless $cust_main;
-my $cust_bill = ($cust_main->cust_bill)[-1]
+})
+  or die "Customer #$custnum not found!";
+
+my $cust_bill = qsearchs({
+  'table'    => 'cust_bill',
+  'hashref'  => { 'custnum' => $custnum },
+  'order_by' => 'ORDER BY _date desc LIMIT 1',
+})
   or die "Customer #$custnum has no invoices!";
 
 my $cust_statement = FS::cust_statement->new({
@@ -33,11 +38,14 @@ my $cust_statement = FS::cust_statement->new({
   '_date'         => time,
 });
 
+my $pdf = $cust_statement->print_pdf({
+  'notice_name' => 'Statement',
+  'no_date'     => 1,
+  'no_number'   => 1,
+});
 
-my $pdf = $cust_statement->print_pdf( '', $templatename );
-
-http_header('Content-Type' => 'application/pdf' );
+http_header('Content-Type'   => 'application/pdf' );
 http_header('Content-Length' => length($pdf) );
-http_header('Cache-control' => 'max-age=60' );
+http_header('Cache-control'  => 'max-age=60' );
 
 </%init>

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm                                  |    7 -----
 FS/FS/Template_Mixin.pm                        |   11 ++++++--
 httemplate/view/cust_main/payment_history.html |    5 +--
 httemplate/view/cust_main_statement-pdf.cgi    |   32 +++++++++++++++---------
 4 files changed, 30 insertions(+), 25 deletions(-)




More information about the freeside-commits mailing list