X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=aec68af455c12f97daa0ee278a155812a9fd6223;hp=004700488b65f98177bbaeb10046d68aab4442a9;hb=0f7643c1af2d909e0c3172e5bec0c01855fca1b9;hpb=d8cb6cd67cc574c90dbbfbd8db2da6711c516d65
diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi
index 004700488..aec68af45 100644
--- a/httemplate/misc/payment.cgi
+++ b/httemplate/misc/payment.cgi
@@ -12,23 +12,71 @@
<% ntable('#cccccc') %>
- Payment amount |
-
+ | Payment amount |
+
|
+% if ( $fee ) {
+
+
+
+% }
+
+<% include('/elements/tr-select-discount_term.html',
+ 'custnum' => $custnum,
+ 'cgi' => $cgi
+ )
+%>
+
% if ( $payby eq 'CARD' ) {
%
% my( $payinfo, $paycvv, $month, $year ) = ( '', '', '', '' );
% my $payname = $cust_main->first. ' '. $cust_main->getfield('last');
-% my $address1 = $cust_main->address1;
-% my $address2 = $cust_main->address2;
-% my $city = $cust_main->city;
-% my $state = $cust_main->state;
-% my $zip = $cust_main->zip;
% if ( $cust_main->payby =~ /^(CARD|DCRD)$/ ) {
% $payinfo = $cust_main->paymask;
% $paycvv = $cust_main->paycvv;
@@ -37,13 +85,13 @@
% }
- Card number |
-
+ | Card number |
+
|
- Exp. |
+ Exp. |
|
- CVV2 |
+ CVV2 |
(help)
|
- Exact name on card |
+ Exact name on card |
|
-
- Card billing address |
-
-
- |
-
- Address line 2 |
-
-
- |
-
- City |
-
-
- |
+ <% include( '/elements/location.html',
+ 'object' => $cust_main, #XXX errors???
+ 'no_asterisks' => 1,
+ 'address1_label' => 'Card billing address',
+ )
+ %>
+
% } elsif ( $payby eq 'CHEK' ) {
%
% my( $payinfo1, $payinfo2, $payname, $ss, $paytype, $paystate,
@@ -270,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>
|