[freeside-commits] branch master updated. 9db30264ee0ce0f05632c1ed0b3e8dbdd03f7bc2

Jonathan Prykop jonathan at 420.am
Thu Jun 25 23:12:40 PDT 2015


The branch, master has been updated
       via  9db30264ee0ce0f05632c1ed0b3e8dbdd03f7bc2 (commit)
      from  3ae0411e8c7d7ff14db95c0d9d9e3834ba431933 (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 9db30264ee0ce0f05632c1ed0b3e8dbdd03f7bc2
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Fri Jun 26 01:08:34 2015 -0500

    RT#24684: Payments for Online Bill Pay

diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 9c323a4..85f85de 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -131,7 +131,7 @@ sub skin_info {
       ),
       'menu_disable' => [ $conf->config('selfservice-menu_disable',$agentnum) ],
       ( map { $_ => $conf->exists("selfservice-$_", $agentnum ) }
-        qw( menu_skipblanks menu_skipheadings menu_nounderline no_logo )
+        qw( menu_skipblanks menu_skipheadings menu_nounderline no_logo enable_payment_without_balance )
       ),
       ( map { $_ => scalar($conf->config_binary("selfservice-$_", $agentnum)) }
         qw( title_left_image title_right_image
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 238622b..17030d2 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -5826,6 +5826,13 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'selfservice-enable_payment_without_balance',
+    'section'     => 'self-service',
+    'description' => 'Allow selfservice customers to make payments even if balance is zero or below (resulting in an unapplied payment and negative balance.)',
+    'type'        => 'checkbox',
+  },
+
+  {
     'key'         => 'logout-timeout',
     'section'     => 'UI',
     'description' => 'If set, automatically log users out of the backoffice after this many minutes.',
diff --git a/fs_selfservice/FS-SelfService/cgi/make_ach_payment.html b/fs_selfservice/FS-SelfService/cgi/make_ach_payment.html
index e33ad57..8c2dfe3 100644
--- a/fs_selfservice/FS-SelfService/cgi/make_ach_payment.html
+++ b/fs_selfservice/FS-SelfService/cgi/make_ach_payment.html
@@ -3,19 +3,25 @@
 <FORM NAME="OneTrueForm" METHOD="POST" ACTION="<%=$selfurl%>" onSubmit="document.OneTrueForm.process.disabled=true">
 <INPUT TYPE="hidden" NAME="action" VALUE="ach_payment_results">
 <TABLE BGCOLOR="#cccccc">
+<%= 
+if ($balance > 0) {
+  $OUT .= <<EOF;
 <TR>
   <TD ALIGN="right">Amount Due</TD>
   <TD>
     <TABLE><TR><TD BGCOLOR="#ffffff">
-      $<%=sprintf("%.2f",$balance)%>
+      $money_char$balance
     </TD></TR></TABLE>
   </TD>
 </TR>
+EOF
+}
+%>
 <TR>
   <TD ALIGN="right">Payment amount</TD>
   <TD>
     <TABLE><TR><TD BGCOLOR="#ffffff">
-      $<INPUT TYPE="text" NAME="amount" SIZE=8 VALUE="<%=sprintf("%.2f",$balance)%>">
+      <%= $money_char %><INPUT TYPE="text" NAME="amount" SIZE=8 VALUE="<%= ($balance > 0) ? $balance : '' %>">
     </TD></TR></TABLE>
   </TD>
 </TR>
diff --git a/fs_selfservice/FS-SelfService/cgi/make_payment.html b/fs_selfservice/FS-SelfService/cgi/make_payment.html
index 5f5bc1c..503901e 100644
--- a/fs_selfservice/FS-SelfService/cgi/make_payment.html
+++ b/fs_selfservice/FS-SelfService/cgi/make_payment.html
@@ -3,14 +3,21 @@
 <FORM NAME="OneTrueForm" METHOD="POST" ACTION="<%=$selfurl%>" onSubmit="document.OneTrueForm.process.disabled=true">
 <INPUT TYPE="hidden" NAME="action" VALUE="payment_results">
 <TABLE BGCOLOR="#cccccc">
+
+<%= 
+if ($balance > 0) {
+  $OUT .= <<EOF;
 <TR>
   <TH ALIGN="right">Amount Due</TH>
   <TD COLSPAN=7>
     <TABLE><TR><TD BGCOLOR="#ffffff">
-      <FONT COLOR="#000000">$<%=sprintf("%.2f",$balance)%></FONT>
+      $money_char$balance
     </TD></TR></TABLE>
   </TD>
 </TR>
+EOF
+}
+%>
 
 <%= $tr_amount_fee %>
 
diff --git a/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html b/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html
index 9a5678e..8c5b1a8 100755
--- a/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html
+++ b/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html
@@ -8,16 +8,23 @@ onSubmit="document.OneTrueForm.process.disabled=true">
 <INPUT TYPE="hidden" NAME="action" VALUE="post_thirdparty_payment">
 <INPUT TYPE="hidden" NAME="payby_method" VALUE="<%= $payby_method %>">
 <TABLE BGCOLOR="#cccccc">
+<%= 
+if ($balance > 0) {
+  $OUT .= <<EOF;
 <TR>
   <TH ALIGN="right">Balance due</TH>
   <TD COLSPAN=7>
-    <SPAN STYLE="background-color: #ffffff;">$<%=sprintf("%.2f", $balance)%>
+    <SPAN STYLE="background-color: #ffffff;">$money_char$balance</SPAN>
   </TD>
 </TR>
+EOF
+} 
+%>
+
 <TR>
   <TH ALIGN="right">Payment amount</TH>
   <TD COLSPAN=7>
-    $<INPUT TYPE="text" NAME="amount" SIZE=8 VALUE="<%=sprintf("%.2f", $balance)%>">
+    <%= $money_char %><INPUT TYPE="text" NAME="amount" SIZE=8 VALUE="<%= ($balance > 0) ? $balance : '' %>">
   </TD>
 </TR>
 <TR><TH></TH>
diff --git a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html
index 61926bd..6af5e5e 100644
--- a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html
+++ b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html
@@ -28,7 +28,7 @@ my %payby_mode;
 # $payby_mode{FOO} is true if FOO is thirdparty, false if it's B::OP,
 # nonexistent if it's not supported
 
-if ( ($balance || 0) > 0 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eventually per-pkg or something really fancy
+if ( $enable_payment_without_balance || (($balance || 0) > 0) ) { #eventually per-pkg or something really fancy
 
   if ( exists( $payby_mode{CARD} ) ) {
     push @menu, { title  => 'Recharge my account with a credit card',
diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
index 4c666cb..b2ebaef 100755
--- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
+++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
@@ -583,10 +583,15 @@ sub make_payment {
 
   my $payment_info = payment_info( 'session_id' => $session_id );
 
+  my $amount = 
+    ($payment_info->{'balance'} && ($payment_info->{'balance'} > 0))
+    ? $payment_info->{'balance'}
+    : '';
+
   my $tr_amount_fee = mason_comp(
     'session_id' => $session_id,
     'comp'       => '/elements/tr-amount_fee.html',
-    'args'       => [ 'amount' => $payment_info->{'balance'},
+    'args'       => [ 'amount' => $amount,
                     ],
   );
 

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

Summary of changes:
 FS/FS/ClientAPI/MyAccount.pm                                |    2 +-
 FS/FS/Conf.pm                                               |    7 +++++++
 fs_selfservice/FS-SelfService/cgi/make_ach_payment.html     |   10 ++++++++--
 fs_selfservice/FS-SelfService/cgi/make_payment.html         |    9 ++++++++-
 .../FS-SelfService/cgi/make_thirdparty_payment.html         |   11 +++++++++--
 fs_selfservice/FS-SelfService/cgi/myaccount_menu.html       |    2 +-
 fs_selfservice/FS-SelfService/cgi/selfservice.cgi           |    7 ++++++-
 7 files changed, 40 insertions(+), 8 deletions(-)




More information about the freeside-commits mailing list