X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=2c889d73b964be37ad1ec416c4695f291e96b4b0;hb=fca1ac5d298b3896c1c42c4ffc7bdd3bab9b8516;hp=bf89a3da74d7fdabfdcd5f94b3059b2cad31b424;hpb=73f34cbe08a9be968a2557cd6906dde5bb9a97a3;p=freeside.git diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi index bf89a3da7..2c889d73b 100644 --- a/httemplate/misc/payment.cgi +++ b/httemplate/misc/payment.cgi @@ -1,108 +1,72 @@ -<% - my %type = ( 'CARD' => 'credit card', - 'CHEK' => 'electronic check (ACH)', - ); - - $cgi->param('payby') =~ /^(CARD|CHEK)$/ - or die "unknown payby ". $cgi->param('payby'); - my $payby = $1; - - $cgi->param('custnum') =~ /^(\d+)$/ - or die "illegal custnum ". $cgi->param('custnum'); - my $custnum = $1; - - my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } ); - die "unknown custnum $custnum" unless $cust_main; - - my $balance = $cust_main->balance; - - my $payinfo = ''; - - #false laziness w/selfservice make_payment.html shortcut for one-country - my $conf = new FS::Conf; - my %states = map { $_->state => 1 } - qsearch('cust_main_county', { - 'country' => $conf->config('defaultcountry') || 'US' - } ); - my @states = sort { $a cmp $b } keys %states; - - my $paybatch = "webui-payment-". time. "-$$-". rand() * 2**32; - -%> -<%= include( '/elements/header.html', "Process $type{$payby} payment" ) %> -<%= include( '/elements/small_custview.html', $cust_main ) %> +<% include( '/elements/header.html', "Process $type{$payby} payment" ) %> +<% include( '/elements/small_custview.html', $cust_main, '', '', popurl(2) . "view/cust_main.cgi" ) %>
- - - - + + + -<% #include( '/elements/table.html', '#cccccc' ) %> -<%= ntable('#cccccc') %> +% #include( '/elements/table.html', '#cccccc' ) + +<% ntable('#cccccc') %> Payment amount
- $"> + $">
-<% 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->payinfo; - $paycvv = $cust_main->paycvv; - ( $month, $year ) = $cust_main->paydate_monthyear; - $payname = $cust_main->payname if $cust_main->payname; - } -%> +% 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; +% } +% + Card number + @@ -111,22 +75,22 @@ function achclose() { - - + @@ -134,61 +98,94 @@ function achclose() {
- Exp. /
CVV2 - (help) + + (help)
Exact name on card
Card billing address - +
Address line 2 - +
City
- + State Zip - +
+% } 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'); +% } +% -<% } elsif ( $payby eq 'CHEK' ) { - my( $payinfo1, $payinfo2, $payname, $ss ) = ( '', '', '', '' ); - if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) { - $cust_main->payinfo =~ /^(\d+)\@(\d+)$/ - or die "unparsable payinfo ". $cust_main->payinfo; - ($payinfo1, $payinfo2) = ($1, $2); - $payname = $cust_main->payname; - $ss = $cust_main->ss; - } -%> Account number - + + Type + ABA/Routing number - - (help) + + (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
- Social security or tax ID # + 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_', + ) %> +% } -<% } %> @@ -196,14 +193,58 @@ function achclose() { Remember this information +% if ($conf->exists("batch-enable")) { - NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }"> - Charge future payments to this <%= $type{$payby} %> automatically + exists("paymentforcedtobatch") && $payby eq 'CHEK' ) ? 'CHECKED DISABLED' : '' %> NAME="batch" VALUE="1"> + Add to current batch +% if ($conf->exists("paymentforcedtobatch") && $payby eq 'CHEK' ) { + +% } + + +% } + + 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
- - + +<% include('/elements/footer.html') %> +<%init> + +my %type = ( 'CARD' => 'credit card', + 'CHEK' => 'electronic check (ACH)', + ); + +$cgi->param('payby') =~ /^(CARD|CHEK)$/ + or die "unknown payby ". $cgi->param('payby'); +my $payby = $1; + +$cgi->param('custnum') =~ /^(\d+)$/ + or die "illegal custnum ". $cgi->param('custnum'); +my $custnum = $1; + +my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } ); +die "unknown custnum $custnum" unless $cust_main; + +my $balance = $cust_main->balance; + +my $payinfo = ''; + +#false laziness w/selfservice make_payment.html shortcut for one-country +my $conf = new FS::Conf; +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; + + + +