From: Ivan Kohler Date: Mon, 26 Jan 2015 05:44:54 +0000 (-0800) Subject: manual echeck payment type, RT#26995 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=8d953e7c2f94dc007d94da74650d27c5a74cc792 manual echeck payment type, RT#26995 --- diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index e584f0042..39f12c25a 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -2622,7 +2622,7 @@ and customer address. Include units.', 'section' => 'billing', 'description' => 'Available payment types.', 'type' => 'selectmultiple', - 'select_enum' => [ qw(CARD DCRD CHEK DCHK BILL CASH WEST MCRD PPAL COMP) ], + 'select_enum' => [ qw(CARD DCRD CHEK DCHK BILL CASH WEST MCRD MCHK PPAL COMP) ], }, { diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 294546cf9..9f9562059 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -400,7 +400,7 @@ sub insert { $payby = 'PREP' if $amount; - } elsif ( $self->payby =~ /^(CASH|WEST|MCRD|PPAL)$/ ) { + } elsif ( $self->payby =~ /^(CASH|WEST|MCRD|MCHK|PPAL)$/ ) { $payby = $1; $self->payby('BILL'); @@ -3074,6 +3074,7 @@ Old-style: =cut +#super false laziness w/quotation::charge sub charge { my $self = shift; my ( $amount, $setup_cost, $quantity, $start_date, $classnum ); diff --git a/FS/FS/payby.pm b/FS/FS/payby.pm index 197d4995b..c4aa1b1b2 100644 --- a/FS/FS/payby.pm +++ b/FS/FS/payby.pm @@ -113,6 +113,12 @@ tie %hash, 'Tie::IxHash', longname => 'Manual credit card', cust_main => 'BILL', #this is a payment type only, customers go to BILL... }, + 'MCHK' => { #not the same as DCHK + tinyname => 'card', + shortname => 'Manual electronic check', # initial payment, then billing + longname => 'Manual electronic check', + cust_main => 'BILL', #this is a payment type only, customers go to BILL... + }, 'APPL' => { tinyname => 'apple store', shortname => 'Apple Store', @@ -207,7 +213,9 @@ sub longname { %payby2bop = ( 'CARD' => 'CC', 'CHEK' => 'ECHECK', - 'MCRD' => 'CC', + 'MCRD' => 'CC', #? but doesn't MCRD mean _offline_ card? i think it got + # overloaded for third-party card payments -- but no one is + # doing those other than paypal now 'PPAL' => 'PAYPAL', ); diff --git a/FS/FS/payinfo_Mixin.pm b/FS/FS/payinfo_Mixin.pm index e14c5895f..c66e3bc37 100644 --- a/FS/FS/payinfo_Mixin.pm +++ b/FS/FS/payinfo_Mixin.pm @@ -38,14 +38,15 @@ For Customers (cust_main): For Refunds (cust_refund): 'CARD' (credit cards), 'CHEK' (electronic check/ACH), 'LECB' (Phone bill billing), 'BILL' (billing), 'CASH' (cash), -'WEST' (Western Union), 'MCRD' (Manual credit card), 'CBAK' Chargeback, or 'COMP' (free) +'WEST' (Western Union), 'MCRD' (Manual credit card), 'MCHK' (Manual electronic +check), 'CBAK' Chargeback, or 'COMP' (free) For Payments (cust_pay): 'CARD' (credit cards), 'CHEK' (electronic check/ACH), 'LECB' (phone bill billing), 'BILL' (billing), 'PREP' (prepaid card), -'CASH' (cash), 'WEST' (Western Union), 'MCRD' (Manual credit card), -'PPAL' (PayPal) +'CASH' (cash), 'WEST' (Western Union), 'MCRD' (Manual credit card), 'MCHK' +(Manual electronic check), 'PPAL' (PayPal) 'COMP' (free) is depricated as a payment type in cust_pay =cut @@ -129,7 +130,11 @@ sub mask_payinfo { return 'N/A (tokenized)'; #? } else { # if not, mask it... - if ($payby eq 'CARD' || $payby eq 'DCRD' || $payby eq 'MCRD') { + if ($payby eq 'CARD' || $payby eq 'DCRD') { + #|| $payby eq 'MCRD') { + #MCRD isn't a card in payinfo, + #its a record of an _offline_ + #card # Credit Cards @@ -177,23 +182,6 @@ sub mask_payinfo { Checks payby and payinfo. -For Customers (cust_main): -'CARD' (credit card - automatic), 'DCRD' (credit card - on-demand), -'CHEK' (electronic check - automatic), 'DCHK' (electronic check - on-demand), -'LECB' (Phone bill billing), 'BILL' (billing), 'COMP' (free), or -'PREPAY' (special billing type: applies a credit - see L and sets billing type to I) - -For Refunds (cust_refund): -'CARD' (credit cards), 'CHEK' (electronic check/ACH), -'LECB' (Phone bill billing), 'BILL' (billing), 'CASH' (cash), -'WEST' (Western Union), 'MCRD' (Manual credit card), 'CBAK' (Chargeback), or 'COMP' (free) - -For Payments (cust_pay): -'CARD' (credit cards), 'CHEK' (electronic check/ACH), -'LECB' (phone bill billing), 'BILL' (billing), 'PREP' (prepaid card), -'CASH' (cash), 'WEST' (Western Union), or 'MCRD' (Manual credit card) -'COMP' (free) is depricated as a payment type in cust_pay - =cut sub payinfo_check { @@ -276,6 +264,8 @@ sub payby_payinfo_pretty { $lh->maketext('Western Union'); } elsif ( $self->payby eq 'MCRD' ) { $lh->maketext('Manual credit card'); + } elsif ( $self->payby eq 'MCHK' ) { + $lh->maketext('Manual electronic check'); } elsif ( $self->payby eq 'EDI' ) { $lh->maketext('EDI') . ' ' . $self->paymask; } elsif ( $self->payby eq 'PPAL' ) { diff --git a/httemplate/edit/cust_refund.cgi b/httemplate/edit/cust_refund.cgi index f9095fd7a..fa049a39a 100755 --- a/httemplate/edit/cust_refund.cgi +++ b/httemplate/edit/cust_refund.cgi @@ -140,7 +140,7 @@ my $reason = $cgi->param('reason'); my $link = $cgi->param('popup') ? 'popup' : ''; my @rights = (); -push @rights, 'Post refund' if $payby =~ /^(BILL|CASH|MCRD)$/; +push @rights, 'Post refund' if $payby =~ /^(BILL|CASH|MCRD|MCHK)$/; push @rights, 'Post check refund' if $payby eq 'BILL'; push @rights, 'Post cash refund ' if $payby eq 'CASH'; push @rights, 'Refund payment' if $payby =~ /^(CARD|CHEK)$/; diff --git a/httemplate/edit/process/cust_refund.cgi b/httemplate/edit/process/cust_refund.cgi index 599c8b8e2..52fede8ec 100755 --- a/httemplate/edit/process/cust_refund.cgi +++ b/httemplate/edit/process/cust_refund.cgi @@ -31,7 +31,7 @@ my $link = $cgi->param('popup') ? 'popup' : ''; my $payby = $cgi->param('payby'); my @rights = (); -push @rights, 'Post refund' if $payby =~ /^(BILL|CASH|MCRD)$/; +push @rights, 'Post refund' if $payby =~ /^(BILL|CASH|MCRD|MCHK)$/; push @rights, 'Post check refund' if $payby eq 'BILL'; push @rights, 'Post cash refund ' if $payby eq 'CASH'; push @rights, 'Refund payment' if $payby =~ /^(CARD|CHEK)$/; diff --git a/httemplate/search/elements/cust_pay_or_refund.html b/httemplate/search/elements/cust_pay_or_refund.html index b5172fb36..7bebe7f40 100755 --- a/httemplate/search/elements/cust_pay_or_refund.html +++ b/httemplate/search/elements/cust_pay_or_refund.html @@ -271,7 +271,7 @@ if ( $cgi->param('magic') ) { foreach my $payby ( $cgi->param('payby') ) { $payby =~ - /^(CARD|CHEK|BILL|CASH|PPAL|APPL|ANRD|PREP|WIRE|WEST|EDI|MCRD)(-(VisaMC|Amex|Discover|Maestro|Tokenized))?$/ + /^(CARD|CHEK|BILL|CASH|PPAL|APPL|ANRD|PREP|WIRE|WEST|EDI|MCRD|MCHK)(-(VisaMC|Amex|Discover|Maestro|Tokenized))?$/ or die "illegal payby $payby"; my $payby_search = "$table.payby = '$1'"; diff --git a/httemplate/search/elements/report_cust_pay_or_refund.html b/httemplate/search/elements/report_cust_pay_or_refund.html index 3026605ca..9c4ca2761 100644 --- a/httemplate/search/elements/report_cust_pay_or_refund.html +++ b/httemplate/search/elements/report_cust_pay_or_refund.html @@ -53,6 +53,7 @@ Examples: + diff --git a/httemplate/search/report_h_cust_pay.html b/httemplate/search/report_h_cust_pay.html index 5c7f27afb..13b7ff35f 100644 --- a/httemplate/search/report_h_cust_pay.html +++ b/httemplate/search/report_h_cust_pay.html @@ -54,6 +54,7 @@ + diff --git a/httemplate/view/cust_bill.cgi b/httemplate/view/cust_bill.cgi index 344030404..27376d505 100755 --- a/httemplate/view/cust_bill.cgi +++ b/httemplate/view/cust_bill.cgi @@ -25,7 +25,7 @@ % } % if ( $cust_bill->owed > 0 -% && scalar( grep $payby{$_}, qw(BILL CASH WEST MCRD) ) +% && scalar( grep $payby{$_}, qw(BILL CASH WEST MCRD MCHK) ) % && $curuser->access_right(['Post payment', 'Post check payment', 'Post cash payment']) % && ! $conf->exists('pkg-balances') % ) @@ -54,6 +54,11 @@ <% mt('manual credit card') |h %> % } +% if ( $payby{'MCHK'} && $curuser->access_right(['Post payment']) ) { + <% $s++ ? ' | ' : '' %> + <% mt('manual electronic check') |h %> +% } + <% mt('payment against this invoice') |h %>

% } diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index a8f2f861a..0aacb0a8d 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -58,6 +58,11 @@ <% mt('Post manual (offline/POS) credit card payment') |h %> % } +% if ( $payby{'MCRD'} && $curuser->access_right('Post payment') ) { + <% $s++ ? ' | ' : '' %> + <% mt('Post manual (offline) electronic check payment') |h %> +% } + <% $s ? '
' : '' %> %# credit links @@ -136,6 +141,11 @@ <% mt('Post manual (offline/POS) credit card refund') |h %> % } +% if ( $payby{'MCHK'} && $curuser->access_right('Post refund') ) { + <% $s++ ? ' | ' : '' %> + <% mt('Post manual (offline) electronic check refund') |h %> +% } +