add bank branch to one-time payments, RT#14859
authorivan <ivan>
Fri, 21 Oct 2011 16:30:02 +0000 (16:30 +0000)
committerivan <ivan>
Fri, 21 Oct 2011 16:30:02 +0000 (16:30 +0000)
httemplate/misc/payment.cgi
httemplate/misc/process/payment.cgi

index 1797b29..b2baebd 100644 (file)
 
 % } elsif ( $payby eq 'CHEK' ) {
 %
-%   my( $payinfo1, $payinfo2, $payname, $ss, $paytype, $paystate,
+%   my( $account, $aba, $branch, $payname, $ss, $paytype, $paystate,
 %       $stateid, $stateid_state )
-%     = ( '', '', '', '', '', '', '', '' );
+%     = ( '', '', '', '', '', '', '', '', '' );
 %   if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
-%     $cust_main->paymask =~ /^([\dx]+)\@([\dx]*)$/i
+%     $cust_main->paymask =~ /^([\dx]+)\@([\d\.x]*)$/i
 %       or die "unparsable payinfo ". $cust_main->payinfo;
-%     ($payinfo1, $payinfo2) = ($1, $2);
+%     ($account, $aba) = ($1, $2);
+%     ($branch,$aba) = split('\.',$aba)
+%       if $conf->exists('cust_main-require-bank-branch');
 %     $payname = $cust_main->payname;
 %     $ss = $cust_main->ss;
 %     $paytype = $cust_main->getfield('paytype');
     <INPUT TYPE="hidden" NAME="year" VALUE="2037">
     <TR>
       <TD ALIGN="right"><% mt('Account number') |h %></TD>
-      <TD><INPUT TYPE="text" SIZE=10 NAME="payinfo1" VALUE="<%$payinfo1%>"></TD>
+      <TD><INPUT TYPE="text" SIZE=10 NAME="payinfo1" VALUE="<%$account%>"></TD>
       <TD ALIGN="right"><% mt('Type') |h %></TD>
       <TD><SELECT NAME="paytype"><% join('', map { qq!<OPTION VALUE="$_" !.($paytype eq $_ ? 'SELECTED' : '').">$_</OPTION>" } @FS::cust_main::paytypes) %></SELECT></TD>
     </TR>
     <TR>
       <TD ALIGN="right"><% mt('ABA/Routing number') |h %></TD>
       <TD>
-        <INPUT TYPE="text" SIZE=10 MAXLENGTH=9 NAME="payinfo2" VALUE="<%$payinfo2%>">
+        <INPUT TYPE="text" SIZE=10 MAXLENGTH=9 NAME="payinfo2" VALUE="<%$aba%>">
         (<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('../docs/ach.html', 380, 240, 'ach_popup' ), CAPTION, 'ACH Help', STICKY, AUTOSTATUSCAP, CLOSECLICK, DRAGGABLE ); return false;"><% mt('help') |h %></A>)
       </TD>
     </TR>
+%   if ( $conf->exists('cust_main-require-bank-branch') ) {
+      <TR>
+        <TD ALIGN="right"><% mt('Branch number') |h %></TD>
+        <TD>
+          <INPUT TYPE="text" NAME="payinfo3" VALUE="<%$branch%>">
+        </TD>
+      </TR>
+%   }
     <TR>
       <TD ALIGN="right"><% mt('Bank name') |h %></TD>
       <TD><INPUT TYPE="text" NAME="payname" VALUE="<%$payname%>"></TD>
index e09cb57..efbdb76 100644 (file)
@@ -81,11 +81,16 @@ if ( $payby eq 'CHEK' ) {
     $payinfo = $cust_main->payinfo;
   } else {
     $cgi->param('payinfo1') =~ /^(\d+)$/
-      or errorpage("illegal account number ". $cgi->param('payinfo1'));
+      or errorpage("Illegal account number ". $cgi->param('payinfo1'));
     my $payinfo1 = $1;
     $cgi->param('payinfo2') =~ /^(\d+)$/
-      or errorpage("illegal ABA/routing number ". $cgi->param('payinfo2'));
+      or errorpage("Illegal ABA/routing number ". $cgi->param('payinfo2'));
     my $payinfo2 = $1;
+    if ( $conf->exists('cust_main-require-bank-branch') ) {
+      $cgi->param('payinfo3') =~ /^(\d+)$/
+        or errorpage("Illegal branch number ". $cgi->param('payinfo2'));
+      $payinfo2 = "$1.$payinfo2";
+    }
     $payinfo = $payinfo1. '@'. $payinfo2;
   }