summaryrefslogtreecommitdiff
path: root/FS/FS/ClientAPI
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-08-04 09:26:23 -0700
committerIvan Kohler <ivan@freeside.biz>2012-08-04 09:26:23 -0700
commit0d8eb2d4d4a372680d0fa564fbfcba0d6674b259 (patch)
tree29c9c06da1b68edef566ab7878071bf1ab0498fc /FS/FS/ClientAPI
parent56d9a1fd046c50466c4d2a1ac6fca2d3776bf86b (diff)
fix skipping processing fee for first payment, RT#18345
Diffstat (limited to 'FS/FS/ClientAPI')
-rw-r--r--FS/FS/ClientAPI/MasonComponent.pm2
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm11
2 files changed, 10 insertions, 3 deletions
diff --git a/FS/FS/ClientAPI/MasonComponent.pm b/FS/FS/ClientAPI/MasonComponent.pm
index c72d268..61208c1 100644
--- a/FS/FS/ClientAPI/MasonComponent.pm
+++ b/FS/FS/ClientAPI/MasonComponent.pm
@@ -55,7 +55,7 @@ my %session_callbacks = (
%args,
'process-pkgpart' => scalar($conf->config('selfservice_process-pkgpart')),
'process-display' => scalar($conf->config('selfservice_process-display')),
- 'process-skip-first' => $conf->exists('selfservice_process-skip_first'),
+ 'process-skip_first' => $conf->exists('selfservice_process-skip_first'),
'num_payments' => scalar($cust_main->cust_pay),
'surcharge_percentage' => scalar($conf->config('credit-card-surcharge-percentage')),
);
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 3fd6214..eddb164 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -930,7 +930,12 @@ sub validate_payment {
my $conf = new FS::Conf;
my $fee_display = $conf->config('selfservice_process-display') || 'add';
my $fee_pkgpart = $conf->config('selfservice_process-pkgpart');
- if ( $fee_display eq 'add' && $fee_pkgpart ) {
+ my $fee_skip_first = $conf->exists('selfservice_process-skip_first');
+ if ( $fee_display eq 'add'
+ and $fee_pkgpart
+ and ! $fee_skip_first || scalar($cust_main->cust_pay)
+ )
+ {
my $fee_pkg = qsearchs('part_pkg', { pkgpart=>$fee_pkgpart } );
$amount = sprintf('%.2f', $amount + $fee_pkg->option('setup_fee') );
}
@@ -1097,7 +1102,9 @@ sub do_process_payment {
#no error, so order the fee package if applicable...
my $conf = new FS::Conf;
my $fee_pkgpart = $conf->config('selfservice_process-pkgpart');
- if ( $fee_pkgpart ) {
+ my $fee_skip_first = $conf->exists('selfservice_process-skip_first');
+
+ if ( $fee_pkgpart and ! $fee_skip_first || scalar($cust_main->cust_pay) ) {
my $cust_pkg = new FS::cust_pkg { 'pkgpart' => $fee_pkgpart };