diff options
Diffstat (limited to 'httemplate')
-rwxr-xr-x | httemplate/browse/agent.cgi | 24 | ||||
-rw-r--r-- | httemplate/edit/agent_payment_gateway.html | 28 | ||||
-rw-r--r-- | httemplate/edit/elements/edit.html | 2 | ||||
-rw-r--r-- | httemplate/edit/payment_gateway.html | 11 | ||||
-rw-r--r-- | httemplate/edit/process/agent_payment_gateway.html | 13 | ||||
-rw-r--r-- | httemplate/misc/process/payment.cgi | 16 |
6 files changed, 35 insertions, 59 deletions
diff --git a/httemplate/browse/agent.cgi b/httemplate/browse/agent.cgi index 3fe68c15d..751e8b69b 100755 --- a/httemplate/browse/agent.cgi +++ b/httemplate/browse/agent.cgi @@ -42,7 +42,7 @@ full offerings (via their type).<BR><BR> <TH CLASS="grid" BGCOLOR="#cccccc">Currencies</TH> % } - <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Overrides</FONT></TH> + <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Override</FONT></TH> <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Configuration Overrides</FONT></TH> </TR> @@ -331,32 +331,24 @@ Unused % } % ## -% # payment gateway overrides +% # payment gateway override % ## <TD CLASS="inv" BGCOLOR="<% $bgcolor %>"> <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0> -% foreach my $override ( -% # sort { } want taxclass-full stuff first? and default cards (empty cardtype) -% qsearch('agent_payment_gateway', { 'agentnum' => $agent->agentnum } ) -% ) { -% - +% my $gw_override = qsearchs('agent_payment_gateway', { 'agentnum' => $agent->agentnum } ); +% if ($gw_override) { <TR> <TD> - <% $override->cardtype || 'Default' %> to <% $override->payment_gateway->gateway_module %> (<% $override->payment_gateway->gateway_username %>) - <% $override->taxclass - ? ' for '. $override->taxclass. ' only' - : '' - %> - <FONT SIZE=-1><A HREF="javascript:areyousure('delete this payment gateway override', '<%$p%>misc/delete-agent_payment_gateway.cgi?<% $override->agentgatewaynum %>')">(delete)</A></FONT> + <% $gw_override->payment_gateway->gateway_module %> (<% $gw_override->payment_gateway->gateway_username %>) + <FONT SIZE=-1><A HREF="javascript:areyousure('delete this payment gateway override', '<%$p%>misc/delete-agent_payment_gateway.cgi?<% $gw_override->agentgatewaynum %>')">(delete)</A></FONT> </TD> </TR> -% } - +% } else { <TR> <TD><FONT SIZE=-1><A HREF="<%$p%>edit/agent_payment_gateway.html?agentnum=<% $agent->agentnum %>">(add override)</A></FONT></TD> </TR> +% } </TABLE> </TD> diff --git a/httemplate/edit/agent_payment_gateway.html b/httemplate/edit/agent_payment_gateway.html index 87972e25d..6d15164ac 100644 --- a/httemplate/edit/agent_payment_gateway.html +++ b/httemplate/edit/agent_payment_gateway.html @@ -1,6 +1,6 @@ <% include("/elements/header.html","$action payment gateway override for ". $agent->agent, menubar( #'View all payment gateways' => $p. 'browse/payment_gateway.html', - 'View all agents' => $p. 'browse/agent.html', + 'View all agents' => $p. 'browse/agent.cgi', )) %> <% include('/elements/error.html') %> @@ -22,32 +22,6 @@ Use gateway <SELECT NAME="gatewaynum"> </SELECT> <BR><BR> -for <SELECT NAME="cardtype" MULTIPLE> -% foreach my $cardtype ( -% "", -% "VISA card", -% "MasterCard", -% "Discover card", -% "American Express card", -% "Diner's Club/Carte Blanche", -% "enRoute", -% "JCB", -% "BankCard", -% "Switch", -% "Solo", -% 'ACH', -% 'PayPal', -%) { - - <OPTION VALUE="<% $cardtype %>"><% $cardtype || '(Default fallback)' %> -% } - -</SELECT> -<BR><BR> - -(optional) when invoice contains only items of taxclass <INPUT TYPE="text" NAME="taxclass"> -<BR><BR> - <INPUT TYPE="submit" VALUE="Add gateway override"> </FORM> diff --git a/httemplate/edit/elements/edit.html b/httemplate/edit/elements/edit.html index 35818dda5..7e0eee467 100644 --- a/httemplate/edit/elements/edit.html +++ b/httemplate/edit/elements/edit.html @@ -247,7 +247,7 @@ Example: > <INPUT TYPE="hidden" NAME="svcdb" VALUE="<% $table %>"> - <INPUT TYPE="hidden" NAME="<% $pkey %>" VALUE="<% $clone ? '' : $object->$pkey() %>"> + <INPUT TYPE="hidden" ID="<% $pkey %>" NAME="<% $pkey %>" VALUE="<% $clone ? '' : $object->$pkey() %>"> <% defined($opt{'form_init'}) ? ( ref($opt{'form_init'}) diff --git a/httemplate/edit/payment_gateway.html b/httemplate/edit/payment_gateway.html index b44b31513..f9b8f2415 100644 --- a/httemplate/edit/payment_gateway.html +++ b/httemplate/edit/payment_gateway.html @@ -22,6 +22,9 @@ <SCRIPT TYPE="text/javascript"> var modulesForNamespace = <% $json->encode(\%modules) %>; function changeNamespace() { + if (document.getElementById('gatewaynum').value) { + return true; + } var ns = document.getElementById('gateway_namespace').value; var select_module = document.getElementById('gateway_module'); select_module.options.length = 0; @@ -180,7 +183,13 @@ my $field_callback = sub { my ($cgi, $object, $field_hashref ) = @_; if ($object->gatewaynum) { if ( $field_hashref->{field} eq 'gateway_module' ) { - $field_hashref->{type} = 'fixed'; + if ($object->gateway_namespace eq 'Business::OnlinePayment' && + $object->gateway_module ne 'CardFortress' + ) { + $field_hashref->{options} = [ $object->gateway_module, 'CardFortress' ] + } else { + $field_hashref->{type} = 'fixed'; + } } elsif ( $field_hashref->{field} eq 'gateway_namespace' ) { $field_hashref->{type} = 'fixed'; $field_hashref->{formatted_value} = $object->namespace_description; diff --git a/httemplate/edit/process/agent_payment_gateway.html b/httemplate/edit/process/agent_payment_gateway.html index 5b5fd948a..c9789cff6 100644 --- a/httemplate/edit/process/agent_payment_gateway.html +++ b/httemplate/edit/process/agent_payment_gateway.html @@ -10,20 +10,13 @@ die "agentnum $1 not found" unless $agent; #my $old -my @new = map { - my $cardtype = $_; - new FS::agent_payment_gateway { +my $new = new FS::agent_payment_gateway { ( map { $_ => scalar($cgi->param($_)) } fields('agent_payment_gateway') ), - 'cardtype' => $cardtype, }; - } - $cgi->param('cardtype'); -foreach my $new (@new) { - my $error = $new->insert; - die $error if $error; -} +my $error = $new->insert; +die $error if $error; </%init> diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index 852becb9d..1532605d4 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -72,7 +72,7 @@ $cgi->param('discount_term') =~ /^(\d*)$/ or errorpage("illegal discount_term"); my $discount_term = $1; -my( $payinfo, $paycvv, $month, $year, $payname ); +my( $cust_payby, $payinfo, $paycvv, $month, $year, $payname ); my $paymask = ''; if ( (my $custpaybynum = scalar($cgi->param('custpaybynum'))) > 0 ) { @@ -80,10 +80,11 @@ if ( (my $custpaybynum = scalar($cgi->param('custpaybynum'))) > 0 ) { # use stored cust_payby info ## - my $cust_payby = qsearchs('cust_payby', { custnum => $custnum, + $cust_payby = qsearchs('cust_payby', { custnum => $custnum, custpaybynum => $custpaybynum, } ) or die "unknown custpaybynum $custpaybynum"; + # not needed for realtime_bop, but still needed for batch_card $payinfo = $cust_payby->payinfo; $paymask = $cust_payby->paymask; $paycvv = $cust_payby->paycvv; # pass it if we got it, running a transaction will clear it @@ -134,7 +135,7 @@ if ( (my $custpaybynum = scalar($cgi->param('custpaybynum'))) > 0 ) { validate($payinfo) or errorpage(gettext('invalid_card')); - unless ( $payinfo =~ /^99\d{14}$/ ) { #token + unless ( $cust_main->tokenized($payinfo) ) { #token my $cardtype = cardtype($payinfo); @@ -164,7 +165,7 @@ if ( (my $custpaybynum = scalar($cgi->param('custpaybynum'))) > 0 ) { die "unknown payby $payby"; } - # save first, for proper tokenization later + # save first, for proper tokenization if ( $cgi->param('save') ) { my %saveopt; @@ -181,6 +182,7 @@ if ( (my $custpaybynum = scalar($cgi->param('custpaybynum'))) > 0 ) { } my $error = $cust_main->save_cust_payby( + 'saved_cust_payby' => \$cust_payby, 'payment_payby' => $payby, 'auto' => scalar($cgi->param('auto')), 'weight' => scalar($cgi->param('weight')), @@ -191,6 +193,11 @@ if ( (my $custpaybynum = scalar($cgi->param('custpaybynum'))) > 0 ) { errorpage("error saving info, payment not processed: $error") if $error; + + } elsif ( $payby eq 'CARD' ) { # not saving + + $paymask = FS::payinfo_Mixin->mask_payinfo('CARD',$payinfo); # for untokenized but tokenizable payinfo + } } @@ -220,6 +227,7 @@ if ( $cgi->param('batch') ) { } else { $error = $cust_main->realtime_bop( $FS::payby::payby2bop{$payby}, $amount, + 'cust_payby' => $cust_payby, # if defined, will override passed payinfo, etc 'quiet' => 1, 'manual' => 1, 'balance' => $balance, |