X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=aec68af455c12f97daa0ee278a155812a9fd6223;hb=bc8bc32def6ab636129c205ebd5b7db76b805ac5;hp=f99f2f068b979eaea3ba2ae5fbb38dcc9df2c6c6;hpb=f49f11d4c3c4ba9480cc5c9acfaa606a5ba73ad1;p=freeside.git
diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi
index f99f2f068..aec68af45 100644
--- a/httemplate/misc/payment.cgi
+++ b/httemplate/misc/payment.cgi
@@ -6,186 +6,223 @@
-
-
-
-
+<% include('/elements/init_overlib.html') %>
+
% #include( '/elements/table.html', '#cccccc' )
<% 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;
-% ( $month, $year ) = $cust_main->paydate_monthyear;
-% $payname = $cust_main->payname if $cust_main->payname;
-% }
%
+% my( $payinfo, $paycvv, $month, $year ) = ( '', '', '', '' );
+% my $payname = $cust_main->first. ' '. $cust_main->getfield('last');
+% if ( $cust_main->payby =~ /^(CARD|DCRD)$/ ) {
+% $payinfo = $cust_main->paymask;
+% $paycvv = $cust_main->paycvv;
+% ( $month, $year ) = $cust_main->paydate_monthyear;
+% $payname = $cust_main->payname if $cust_main->payname;
+% }
-
- Card number |
-
-
- |
-
% } elsif ( $payby eq 'CHEK' ) {
-% my( $payinfo1, $payinfo2, $payname, $ss, $paytype, $paystate,
-% $stateid, $stateid_state )
-% = ( '', '', '', '', '', '', '', '' );
-% if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
-% $cust_main->paymask =~ /^([\dx]+)\@([\dx]+)$/i
-% or die "unparsable payinfo ". $cust_main->payinfo;
-% ($payinfo1, $payinfo2) = ($1, $2);
-% $payname = $cust_main->payname;
-% $ss = $cust_main->ss;
-% $paytype = $cust_main->getfield('paytype');
-% $paystate = $cust_main->getfield('paystate');
-% $stateid = $cust_main->getfield('stateid');
-% $stateid_state = $cust_main->getfield('stateid_state');
-% }
%
+% my( $payinfo1, $payinfo2, $payname, $ss, $paytype, $paystate,
+% $stateid, $stateid_state )
+% = ( '', '', '', '', '', '', '', '' );
+% if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
+% $cust_main->paymask =~ /^([\dx]+)\@([\dx]+)$/i
+% or die "unparsable payinfo ". $cust_main->payinfo;
+% ($payinfo1, $payinfo2) = ($1, $2);
+% $payname = $cust_main->payname;
+% $ss = $cust_main->ss;
+% $paytype = $cust_main->getfield('paytype');
+% $paystate = $cust_main->getfield('paystate');
+% $stateid = $cust_main->getfield('stateid');
+% $stateid_state = $cust_main->getfield('stateid_state');
+% }
-
-
-
- Account number |
- |
- Type |
- |
-
-
- ABA/Routing number |
-
-
- (help)
- |
-
-
- Bank name |
- |
-
-
- Bank state |
- <% include('../edit/cust_main/select-state.html', #meh
- 'empty' => '(choose)',
- 'state' => $paystate,
- 'country' => $cust_main->country,
- 'prefix' => 'pay',
- ) %> |
-
-
-
- Account holder
- Social security or tax ID #
- |
- |
-
-
-
- Account holder
- Driver’s license or state ID #
- |
- |
- State |
- <% include('../edit/cust_main/select-state.html', #meh
- 'empty' => '(choose)',
- 'state' => $stateid_state,
- 'country' => $cust_main->country,
- 'prefix' => 'stateid_',
- ) %> |
-
-% }
+
+
+
+ Account number |
+ |
+ Type |
+ |
+
+
+ ABA/Routing number |
+
+
+ (help)
+ |
+
+
+ Bank name |
+ |
+
+
+% if ( $conf->exists('show_bankstate') ) {
+
+ Bank state |
+ <% include('/elements/select-state.html',
+ 'disable_empty' => 0,
+ 'empty_label' => '(choose)',
+ 'state' => $paystate,
+ 'country' => $cust_main->country,
+ 'prefix' => 'pay',
+ )
+ %>
+ |
+
+% } else {
+
+% }
+
+% if ( $conf->exists('show_ss') ) {
+
+
+ Account holder
+ Social security or tax ID #
+ |
+ |
+
+% } else {
+
+% }
+
+% if ( $conf->exists('show_stateid') ) {
+
+
+ Account holder
+ Driver’s license or state ID #
+ |
+ |
+ State |
+ <% include('/elements/select-state.html',
+ 'disable_empty' => 0,
+ 'empty_label' => '(choose)',
+ 'state' => $stateid_state,
+ 'country' => $cust_main->country,
+ 'prefix' => 'stateid_',
+ )
+ %>
+ |
+
+% } else {
+
+
+% }
+
+% } #end CARD/CHEK-specific section
@@ -193,23 +230,37 @@ function OLiframeContent(src, width, height, name) {
Remember this information
-
-% if ($conf->exists("batch-enable")) {
-
- exists("paymentforcedtobatch") && $payby eq 'CHEK' ) ? 'CHECKED DISABLED' : '' %> NAME="batch" VALUE="1">
- Add to current batch
-% if ($conf->exists("paymentforcedtobatch") && $payby eq 'CHEK' ) {
-
-% }
- |
-
+
+
+% if ( $conf->exists("batch-enable")
+% || grep $payby eq $_, $conf->config('batch-enable_payby')
+% ) {
+%
+% if ( grep $payby eq $_, $conf->config('realtime-disable_payby') ) {
+
+
+
+% } else {
+
+
+
+
+ Add to current batch
+ |
+
+
+% }
% }
+
+
payby ne 'DCRD' ) || ( $payby eq 'CHEK' && $cust_main->payby eq 'CHEK' ) ) ? ' CHECKED' : '' %> NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
Charge future payments to this <% $type{$payby} %> automatically
|
+
+
@@ -239,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>