From fe51a669f4f72c3c932a1fec138b60632666f982 Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Fri, 26 Jun 2015 01:08:34 -0500 Subject: [PATCH] RT#24684: Payments for Online Bill Pay --- 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(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 804c8510c..c5418bcfa 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -129,7 +129,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 c5c0e465b..c9cae933c 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -5872,6 +5872,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 e33ad574c..8c2dfe305 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 @@
+<%= +if ($balance > 0) { + $OUT .= < +EOF +} +%> diff --git a/fs_selfservice/FS-SelfService/cgi/make_payment.html b/fs_selfservice/FS-SelfService/cgi/make_payment.html index 5f5bc1c8e..503901edd 100644 --- a/fs_selfservice/FS-SelfService/cgi/make_payment.html +++ b/fs_selfservice/FS-SelfService/cgi/make_payment.html @@ -3,14 +3,21 @@
Amount Due
- $<%=sprintf("%.2f",$balance)%> + $money_char$balance
Payment amount
- $"> + <%= $money_char %>
+ +<%= +if ($balance > 0) { + $OUT .= < +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 9a5678e8f..8c5b1a85a 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">
Amount Due
- $<%=sprintf("%.2f",$balance)%> + $money_char$balance
+<%= +if ($balance > 0) { + $OUT .= < +EOF +} +%> + diff --git a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html index 61926bd86..6af5e5ec0 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 2a8b2b6c4..4199f7005 100755 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -569,10 +569,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, ], ); -- 2.11.0
Balance due - $<%=sprintf("%.2f", $balance)%> + $money_char$balance
Payment amount - $"> + <%= $money_char %>