From: Jonathan Prykop Date: Tue, 26 Jan 2016 20:45:00 +0000 (-0600) Subject: RT#38363: use cust_payby when saving cards during payments [minor fixes] X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=121ae7fbe668c076e11d54ae6f96dc81738c9fdf;p=freeside.git RT#38363: use cust_payby when saving cards during payments [minor fixes] --- diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index ee70deaa6..bbdc8fe41 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -2174,7 +2174,7 @@ sub cust_contact { Returns all payment methods (see L) for this customer. If one or more PAYBY are specified, returns only payment methods for specified PAYBY. -Does not validate PAYBY--do not pass tainted values. +Does not validate PAYBY. =cut @@ -2186,7 +2186,7 @@ sub cust_payby { 'hashref' => { 'custnum' => $self->custnum }, 'order_by' => "ORDER BY payby IN ('CARD','CHEK') DESC, weight ASC", }; - $search->{'extra_sql'} = ' AND payby IN ( ' . join(',', map { "'$_'" } @payby) . ' ) ' + $search->{'extra_sql'} = ' AND payby IN ( ' . join(',', map { dbh->quote($_) } @payby) . ' ) ' if @payby; qsearch($search); diff --git a/FS/FS/payby.pm b/FS/FS/payby.pm index 530d88d80..b84965587 100644 --- a/FS/FS/payby.pm +++ b/FS/FS/payby.pm @@ -41,6 +41,8 @@ Payment types. # - a customer saved payment type (cust_payby.payby) # - a payment or refund type (cust_pay.payby, cust_pay_batch.payby, cust_refund.payby) +# customer methods that start with 'D' will be interpreted as on-demand + tie %hash, 'Tie::IxHash', 'CARD' => { tinyname => 'card', diff --git a/httemplate/elements/cust_payby.html b/httemplate/elements/cust_payby.html index 5e0f09d3f..c7d4549df 100644 --- a/httemplate/elements/cust_payby.html +++ b/httemplate/elements/cust_payby.html @@ -216,7 +216,7 @@ % } -% unless ( $opt{'html_only'} ) { +% unless ( $opt{'html_only'} || $payby_changed_init ) { +% $payby_changed_init = 1; % } +<%once> +my $payby_changed_init = 0; + <%init> my( %opt ) = @_;