diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2012-08-04 09:26:26 -0700 |
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2012-08-04 09:26:26 -0700 |
| commit | abc5455434e69165b722b0b443cb005edad6db28 (patch) | |
| tree | 4b85630500baa79c897dc9b6dc3d3b7693558a80 | |
| parent | e03a0c7c4cc4f0742a8ded7956cad5558f87bd16 (diff) | |
fix skipping processing fee for first payment, RT#18345
| -rw-r--r-- | FS/FS/ClientAPI/MasonComponent.pm | 2 | ||||
| -rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 11 | ||||
| -rw-r--r-- | httemplate/misc/payment.cgi | 2 |
3 files changed, 11 insertions, 4 deletions
diff --git a/FS/FS/ClientAPI/MasonComponent.pm b/FS/FS/ClientAPI/MasonComponent.pm index 252d4023b..357ca8793 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 15c47c66e..334614b95 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -898,7 +898,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') ); } @@ -1065,7 +1070,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 }; diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi index e221c600a..2d7307233 100644 --- a/httemplate/misc/payment.cgi +++ b/httemplate/misc/payment.cgi @@ -14,7 +14,7 @@ 'amount' => $amount, 'process-pkgpart' => scalar($conf->config('manual_process-pkgpart')), 'process-display' => scalar($conf->config('manual_process-display')), - 'process-skip-first' => $conf->exists('manual_process-skip_first'), + 'process-skip_first' => $conf->exists('manual_process-skip_first'), 'num_payments' => scalar($cust_main->cust_pay), 'surcharge_percentage' => scalar($conf->config('credit-card-surcharge-percentage')), &> |
