From 4924d635301e5c365d55b0c008f12e9cff40350f Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Fri, 3 Jun 2016 22:58:35 -0700 Subject: [PATCH] ignore weight when editing DCRD/DCHK payment methods, #71176 --- FS/FS/cust_payby.pm | 3 +++ httemplate/elements/cust_payby.html | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/FS/FS/cust_payby.pm b/FS/FS/cust_payby.pm index 623a44efc..62fa9be5f 100644 --- a/FS/FS/cust_payby.pm +++ b/FS/FS/cust_payby.pm @@ -715,6 +715,9 @@ sub cgi_hash_callback { 'CARD' => 'DCRD', 'CHEK' => 'DCHK', ); + # the payby selector gives the choice of CARD or CHEK (or others, but + # those are the ones with auto and on-demand versions). if the user didn't + # choose a weight, then they mean DCRD/DCHK. $hashref->{payby} = $noauto{$hashref->{payby}} if ! $hashref->{weight} && exists $noauto{$hashref->{payby}}; diff --git a/httemplate/elements/cust_payby.html b/httemplate/elements/cust_payby.html index 60e6eb8b1..f30d18557 100644 --- a/httemplate/elements/cust_payby.html +++ b/httemplate/elements/cust_payby.html @@ -298,8 +298,17 @@ if ( $curr_value ) { $cust_payby = new FS::cust_payby {}; } my $sel_payby = $cgi->param($name.'_payby') || $cust_payby->payby; -$sel_payby = 'CARD' if $sel_payby eq 'DCRD' || $sel_payby eq ''; -$sel_payby = 'CHEK' if $sel_payby eq 'DCHK'; +# convert DCRD to CARD + no weight, and the same for DCHK/CHEK +if ($sel_payby eq 'DCRD') { + $sel_payby = 'CARD'; + $cust_payby->weight(''); +} elsif ($sel_payby eq 'DCHK') { + $sel_payby = 'CHEK'; + $cust_payby->weight(''); +} elsif (!$sel_payby) { + # default + $sel_payby = 'CARD'; +} my @payby = FS::payby->cust_payby; my %conf_payby = map { $_=>1 } $conf->config('payby'); -- 2.11.0