X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=aec68af455c12f97daa0ee278a155812a9fd6223;hp=45aeacad48c308f22497f79103781065050ecff2;hb=0f7643c1af2d909e0c3172e5bec0c01855fca1b9;hpb=26119738eaf2b519d91c855c23986f873303887f
diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi
index 45aeacad4..aec68af45 100644
--- a/httemplate/misc/payment.cgi
+++ b/httemplate/misc/payment.cgi
@@ -13,13 +13,66 @@
<% ntable('#cccccc') %>
Payment amount |
-
+ |
|
+% if ( $fee ) {
+
+
+
+% }
+
+<% include('/elements/tr-select-discount_term.html',
+ 'custnum' => $custnum,
+ 'cgi' => $cgi
+ )
+%>
+
% if ( $payby eq 'CARD' ) {
%
% my( $payinfo, $paycvv, $month, $year ) = ( '', '', '', '' );
@@ -237,16 +290,55 @@ my $balance = $cust_main->balance;
my $payinfo = '';
-#false laziness w/selfservice make_payment.html shortcut for one-country
my $conf = new FS::Conf;
+
+my $money_char = $conf->config('money_char') || '$';
+
+#false laziness w/selfservice make_payment.html shortcut for one-country
my %states = map { $_->state => 1 }
qsearch('cust_main_county', {
'country' => $conf->config('countrydefault') || 'US'
} );
my @states = sort { $a cmp $b } keys %states;
-my $payunique = "webui-payment-". time. "-$$-". rand() * 2**32;
+my $fee = '';
+my $fee_pkg = '';
+my $fee_display = '';
+my $fee_op = '';
+my $num_payments = scalar($cust_main->cust_pay);
+#handle old cust_main.pm (remove...)
+$num_payments = scalar( @{ [ $cust_main->cust_pay ] } )
+ unless defined $num_payments;
+if ( $conf->config('manual_process-pkgpart')
+ and ! $conf->exists('manual_process-skip_first') || $num_payments
+ )
+{
-%init>
+ $fee_display = $conf->config('manual_process-display') || 'add';
+ $fee_op = $fee_display eq 'add' ? '+' : '-';
+
+ $fee_pkg =
+ qsearchs('part_pkg', { pkgpart=>$conf->config('manual_process-pkgpart') } );
+
+ #well ->unit_setup or ->calc_setup both call for a $cust_pkg
+ # (though ->unit_setup doesn't use it...)
+ $fee = $fee_pkg->option('setup_fee')
+ if $fee_pkg; #in case.. better than dying with a perl traceback
+}
+my $amount = '';
+if ( $balance > 0 ) {
+ $amount = $balance;
+ $amount += $fee
+ if $fee && $fee_display eq 'subtract';
+
+ my $cc_surcharge_pct = $conf->config('credit-card-surcharge-percentage');
+ $amount += $amount * $cc_surcharge_pct/100 if $cc_surcharge_pct > 0;
+
+ $amount = sprintf("%.2f", $amount);
+}
+
+my $payunique = "webui-payment-". time. "-$$-". rand() * 2**32;
+
+%init>