RT#34078: Payment History Report / Statement
authorJonathan Prykop <jonathan@freeside.biz>
Sat, 4 Jul 2015 00:46:00 +0000 (19:46 -0500)
committerJonathan Prykop <jonathan@freeside.biz>
Sat, 4 Jul 2015 02:12:23 +0000 (21:12 -0500)
FS/FS/ClientAPI/MasonComponent.pm
FS/FS/cust_main.pm
fs_selfservice/FS-SelfService/cgi/history.html

index 50597e2..3c3bf4c 100644 (file)
@@ -14,6 +14,7 @@ $DEBUG = 0;
 $me = '[FS::ClientAPI::MasonComponent]';
 
 my %allowed_comps = map { $_=>1 } qw(
+  /elements/customer-statement.html
   /elements/select-did.html
   /misc/areacodes.cgi
   /misc/exchanges.cgi
index 01a47d0..10df0fc 100644 (file)
@@ -4517,7 +4517,7 @@ sub payment_history {
         'amount'      => sprintf('%.2f', $_->setup + $_->recur ),
         'charged'     => sprintf('%.2f', $_->setup + $_->recur ),
         'date'        => $cust_bill->_date,
-        'date_pretty' =>  time2str('%m/%d/%Y', $cust_bill->_date ),
+        'date_pretty' => $self->time2str_local('short', $cust_bill->_date ),
       }
         foreach $cust_bill->cust_bill_pkg;
 
@@ -4531,7 +4531,7 @@ sub payment_history {
                      'amount'      => sprintf('%.2f', $_->charged ),
                      'charged'     => sprintf('%.2f', $_->charged ),
                      'date'        => $_->_date,
-                     'date_pretty' =>  time2str('%m/%d/%Y', $_->_date ),
+                     'date_pretty' => $self->time2str_local('short', $_->_date ),
                    }
       foreach $self->cust_bill;
 
@@ -4543,7 +4543,7 @@ sub payment_history {
                    'amount'      => sprintf('%.2f', 0 - $_->paid ),
                    'paid'        => sprintf('%.2f', $_->paid ),
                    'date'        => $_->_date,
-                   'date_pretty' =>  time2str('%m/%d/%Y', $_->_date ),
+                   'date_pretty' => $self->time2str_local('short', $_->_date ),
                  }
     foreach $self->cust_pay;
 
@@ -4553,7 +4553,7 @@ sub payment_history {
                    'amount'      => sprintf('%.2f', 0 -$_->amount ),
                    'credit'      => sprintf('%.2f', $_->amount ),
                    'date'        => $_->_date,
-                   'date_pretty' =>  time2str('%m/%d/%Y', $_->_date ),
+                   'date_pretty' => $self->time2str_local('short', $_->_date ),
                  }
     foreach $self->cust_credit;
 
@@ -4563,7 +4563,7 @@ sub payment_history {
                    'amount'      => $_->refund,
                    'refund'      => $_->refund,
                    'date'        => $_->_date,
-                   'date_pretty' =>  time2str('%m/%d/%Y', $_->_date ),
+                   'date_pretty' => $self->time2str_local('short', $_->_date ),
                  }
     foreach $self->cust_refund;
 
index 605bc1c..0b6f9ce 100644 (file)
@@ -1,39 +1,14 @@
 <%= include('header', 'Payment History') %>
 
 <%=
-my $balance = 0;
-my $style      = 'text-align: left; margin: 0; padding: 0 1em 0 0;';
-my $moneystyle = 'text-align: right; margin: 0; padding: 0 1em 0 0;';
-my $col1 = "#ffffff";
-my $col2 = "#dddddd";
-my $col = $col1;
-foreach my $item (@history) {
-  $balance += $$item{'amount'};
-  $$item{'amount'} =~ s/^(-?)/$1$money_char/;
-  $out .= <<EOF;
-  <TR>
-    <TD style="$style background: $col;">$$item{'date_pretty'}</TD>
-    <TD style="$style background: $col;">$$item{'description'}</TD>
-    <TD style="$moneystyle background: $col;">$$item{'amount'}</TD>
-  </TR>
-EOF
-  $col = $col eq $col1 ? $col2 : $col1;
-}
-$balance = sprintf('%.2f',$balance);
-$balance =~ s/^(-?)/$1$money_char/;
-$out = <<EOF;
-<P>Balance: <B>$balance</B></P>
-<TABLE style="margin: 0;" CELLSPACING="0">
-  <TR>
-    <TH style="$style background: #ff9999;">Date</TH>
-    <TH style="$style background: #ff9999;">Description</TH>
-    <TH style="$moneystyle background: #ff9999;">Amount</TH>
-  </TR>
-$out
-</TABLE>
-EOF
+my $out = mason_comp(
+  'session_id' => $session_id,
+  'comp'       => '/elements/customer-statement.html',
+  'args'       => [
+    'history' => \@history,
+  ]
+);
+$out->{'output'} || $out->{'error'};
 %>
 
-</TABLE>
-
 <%= include('footer') %>