'show_paystate' => $conf->exists('show_bankstate'),
'save_unchecked' => $conf->exists('selfservice-save_unchecked'),
+ 'ach_read_only' => $conf->exists('selfservice-ACH_info_readonly'),
};
},
{
+ 'key' => 'selfservice-ACH_info_readonly',
+ 'section' => 'self-service',
+ 'description' => 'make ACH on self service portal read only',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'selfservice-announcement',
'section' => 'self-service',
'description' => 'HTML announcement to display to all authenticated users on account overview page',
'PREP' => qq/Prepaid Card/,
'PREPAY' => qq/Prepaid Card/,
);
+
+ ## Don't show CHEK or DCHK option if ACH is read only
+ delete( $payby_index{'CHEK'} ) unless !$ach_read_only;
+ delete( $payby_index{'DCHK'} ) unless !$ach_read_only;
+
tie my %options, 'Tie::IxHash', ();
foreach my $payby_option ( grep { exists( $payby_index{$_} ) } @paybys ) {
$options{$payby_option} = $payby_index{$payby_option};
delete $options{'DCRD'} unless $payby eq 'DCRD' || ! exists $options{'CARD'};
delete $options{'DCHK'} unless $payby eq 'DCHK' || ! exists $options{'CHEK'};
+ ## setting payby to default to layer if only one. should we always display first layer?
+ if (keys %options == 1) { @p = keys %options; $payby = $p[0]; }
+
HTML::Widgets::SelectLayers->new(
options => \%options,
selected_layer => $payby,
<TR>
<TD ALIGN="right">Account type</TD>
- <TD>
- <SELECT NAME="paytype">
- <%= foreach ( @paytypes ) {
- $selected = $paytype eq $_ ? ' SELECTED' : '';
- $OUT .= qq(<OPTION$selected VALUE="$_">$_\n);
- } %>
- </SELECT>
+ <TD <%= ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') %> >
+ <%=
+ if ($ach_read_only) {
+ $OUT = $paytype . '<INPUT TYPE="hidden" NAME="paytype" VALUE="' . $paytype . '">';
+ } else {
+ $OUT .= '<SELECT NAME="paytype">';
+ foreach ( @paytypes ) {
+ $selected = $paytype eq $_ ? ' SELECTED' : '';
+ $OUT .= qq(<OPTION$selected VALUE="$_">$_\n);
+ }
+ $OUT .= '</SELECT>';
+ }
+ %>
</TD>
-</TD><TR>
+</TR><TR>
<TD ALIGN="right">Account number</TD>
- <TD><INPUT TYPE="text" NAME="payinfo1" SIZE=10 MAXLENGTH=20 VALUE="<%=$payinfo1%>"></TD>
-</TD><TR>
+ <TD <%= ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') %> >
+ <%= if ($ach_read_only) {
+ $OUT = qq! $payinfo1 <INPUT TYPE="hidden" NAME="payinfo1" VALUE="$payinfo1"> !;
+ } else {
+ $OUT = qq! <INPUT TYPE="text" NAME="payinfo1" SIZE=10 MAXLENGTH=20 VALUE="$payinfo1"> !;
+ }
+ %>
+ </TD>
+</TR><TR>
<TD ALIGN="right">ABA/Routing number</TD>
- <TD><INPUT TYPE="text" NAME="payinfo2" SIZE=10 MAXLENGTH=9 VALUE="<%=$payinfo2%>"></TD>
+ <TD <%= ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') %> >
+ <%=
+ if ($ach_read_only) {
+ $OUT = qq! $payinfo2 <INPUT TYPE="hidden" NAME="payinfo2" VALUE="$payinfo2"> !;
+ } else {
+ $OUT = qq! <INPUT TYPE="text" NAME="payinfo2" SIZE=10 MAXLENGTH=20 VALUE="$payinfo2"> !;
+ }
+ %>
+ </TD>
</TR><TR>
<TD ALIGN="right">Bank name</TD>
- <TD><INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="payname" VALUE="<%=$payname%>"></TD>
-</TR><TR>
+ <TD <%= ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') %> >
+ <%=
+ if ($ach_read_only) {
+ $OUT = qq! $payname <INPUT TYPE="hidden" NAME="payname" VALUE="$payname"> !;
+ } else {
+ $OUT = qq! <INPUT TYPE="text" NAME="payname" SIZE=10 MAXLENGTH=20 VALUE="$payname"> !;
+ }
+ %>
+ </TD>
+</TR>
<%=
$OUT = '';
if ($show_paystate) {
- $OUT .= qq!<TD ALIGN="right">Bank state</TD><TD><SELECT NAME="paystate">!;
- for ( @states ) {
- $OUT .= '<OPTION'. ($_ eq $paystate ? ' SELECTED' : '' ). ">$_\n";
+ $OUT .= '<TR><TD ALIGN="right">Bank state</TD><TD' . ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') . '>';
+ if ($ach_read_only) {
+ $OUT .= qq! $paystate <INPUT TYPE="hidden" NAME="paystate" VALUE="$paystate"> !;
+ } else {
+ $OUT .= '<SELECT NAME="paystate">';
+ for ( @states ) {
+ $OUT .= '<OPTION'. ($_ eq $paystate ? ' SELECTED' : '' ). ">$_\n";
+ }
+ $OUT .= '</SELECT>';
}
- $OUT .= '</SELECT></TD></TR><TR>';
+ $OUT .= '</TD></TR>';
}
%>
<%=
$OUT = '';
if ($show_ss) {
- $OUT .= '<TD ALIGN="right">Account holder<BR>Social ';
- $OUT .= 'security or tax ID #</TD><TD>';
- $OUT .= qq!<INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="ss" VALUE="$ss">!;
- $OUT .= '</TD></TR><TR>';
+ $OUT .= '<TR><TD ALIGN="right">Account holder<BR>Social ';
+ $OUT .= 'security or tax ID #</TD><TD' . ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') . '>';
+ if ($ach_read_only) {
+ $OUT .= qq! $ss <INPUT TYPE="hidden" NAME="ss" VALUE="$ss">!;
+ } else {
+ $OUT .= qq!<INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="ss" VALUE="$ss">!;
+ }
+ $OUT .= '</TD></TR>';
}
%>
<%=
$OUT = '';
if ($show_stateid) {
- $OUT .= '<TD ALIGN="right">';
- $OUT .= qq!Account holder<BR>$stateid_label</TD><TD>!;
- $OUT .= qq!<INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="stateid" VALUE="$stateid"></TD>!;
- $OUT .= qq!<TD ALIGN="right">$stateid_state_label</TD>!;
- $OUT .= '<TD><SELECT NAME="stateid_state">';
- for ( @states ) {
- $OUT .= '<OPTION'. ($_ eq $stateid_state ? ' SELECTED' : '' ). ">$_\n";
+ $OUT .= qq!<TR><TD ALIGN="right">Account holder<BR>$stateid_label</TD>!;
+ $OUT .= '<TD' . ($ach_read_only ? ' BGCOLOR="#ffffff"' : '') . '>';
+ if ($ach_read_only) {
+ $OUT .= qq! $stateid <INPUT TYPE="hidden" NAME="stateid" VALUE="$stateid">!;
+ } else {
+ $OUT .= qq!<INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="stateid" VALUE="$stateid"></TD>!;
+ $OUT .= qq!<TD ALIGN="right">$stateid_state_label</TD>!;
+ $OUT .= '<TD><SELECT NAME="stateid_state">';
+ for ( @states ) {
+ $OUT .= '<OPTION'. ($_ eq $stateid_state ? ' SELECTED' : '' ). ">$_\n";
+ }
+ $OUT .='</SELECT>';
}
- $OUT .='</SELECT></TD></TR><TR>';
+ $OUT .='</TD></TR>';
}
%>
-</TR>
<TR>
<TD ALIGN="right">Payment amount</TD>
<TD>
- <TABLE><TR><TD BGCOLOR="#ffffff">
+ <TABLE><TR><TD>
<%= $money_char %><INPUT TYPE="text" NAME="amount" SIZE=8 VALUE="<%= ($balance > 0) ? $balance : '' %>">
</TD></TR></TABLE>
</TD>
</TR>
<%= include('discount_term') %>
<%= include('check') %>
-<TR>
- <TD COLSPAN=2>
- <INPUT TYPE="checkbox" <%= $save_unchecked ? '' : 'CHECKED' %> NAME="save" VALUE="1">
- Remember this information
- </TD>
-</TR><TR>
- <TD COLSPAN=2>
- <INPUT TYPE="checkbox"<%= $payby eq 'CHEK' ? ' CHECKED' : '' %> NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
- Charge future payments to this account automatically
- </TD>
-</TR>
+
+<%=
+ $OUT = '';
+ if ($ach_read_only) {
+ if ($payby == 'CHEK') {
+ $OUT .= '<TR><TD COLSPAN=2><INPUT TYPE="hidden" NAME="auto" VALUE="1"></TD></TR>';
+ }
+ } else {
+ $OUT .= '<TR><TD COLSPAN=2><INPUT TYPE="checkbox"' . ($save_unchecked ? '' : 'CHECKED ') . 'NAME="save" VALUE="1">';
+ $OUT .= 'Remember this information</TD></TR>';
+ $OUT .= '<TR><TD COLSPAN=2><INPUT TYPE="checkbox"' . ($payby eq 'CHEK' ? ' CHECKED' : '') . 'NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">';
+ $OUT .= 'Charge future payments to this account automatically</TD></TR>';
+ }
+%>
+
</TABLE>
<BR>
<INPUT TYPE="hidden" NAME="paybatch" VALUE="<%=$paybatch%>">
+<? if ($ach_read_only) { $bgShade = 'BGCOLOR="#ffffff"'; } ?>
<TR>
<TD ALIGN="right">Account type</TD>
- <TD>
- <SELECT NAME="paytype">
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($paytype); ?>
+ <INPUT TYPE="hidden" NAME="paytype" VALUE="<? echo $paytype; ?>">
+ <? } else { ?>
+ <SELECT NAME="paytype">
<? foreach ( $paytypes AS $pt ) { ?>
<OPTION <? if ($pt == $paytype ) { echo 'SELECTED'; } ?> VALUE="<? echo $pt; ?>"><? echo $pt; ?>
<? } ?>
- </SELECT>
+ </SELECT>
+ <? } ?>
</TD>
</TR><TR>
<TD ALIGN="right">Account number</TD>
- <TD><INPUT TYPE="text" NAME="payinfo1" SIZE=10 MAXLENGTH=20 VALUE="<? echo $payinfo1; ?>"></TD>
-</TD><TR>
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($payinfo1); ?>
+ <INPUT TYPE="hidden" NAME="payinfo1" VALUE="<? echo $payinfo1; ?>">
+ <? } else { ?>
+ <INPUT TYPE="text" NAME="payinfo1" SIZE=10 MAXLENGTH=20 VALUE="<? echo $payinfo1; ?>">
+ <? } ?>
+ </TD>
+</TR><TR>
<TD ALIGN="right">ABA/Routing number</TD>
- <TD><INPUT TYPE="text" NAME="payinfo2" SIZE=10 MAXLENGTH=9 VALUE="<? echo $payinfo2; ?>"></TD>
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($payinfo2); ?>
+ <INPUT TYPE="hidden" NAME="payinfo2" VALUE="<? echo $payinfo2; ?>">
+ <? } else { ?>
+ <INPUT TYPE="text" NAME="payinfo2" SIZE=10 MAXLENGTH=9 VALUE="<? echo $payinfo2; ?>"></TD>
+ <? } ?>
</TR><TR>
<TD ALIGN="right">Bank name</TD>
- <TD><INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="payname" VALUE="<? echo $payname; ?>"></TD>
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($payname); ?>
+ <INPUT TYPE="hidden" NAME="payname" VALUE="<? echo $payname; ?>"></TD>
+ <? } else { ?>
+ <INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="payname" VALUE="<? echo $payname; ?>"></TD>
+ <? } ?>
</TR><TR>
<? if ($show_paystate) { ?>
- <TD ALIGN="right">Bank state</TD>
- <TD>
- <SELECT NAME="paystate">
- <? foreach ( $states AS $s ) { ?>
- <OPTION <? if ($s == $paystate ) { echo 'SELECTED'; } ?>><? echo $s; ?>
- <? } ?>
- </SELECT>
- </TD>
- </TR><TR>
+ <TR>
+ <TD ALIGN="right">Bank state</TD>
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($paystate); ?>
+ <INPUT TYPE="hidden" NAME="paystate" VALUE="<? echo $paystate; ?>"></TD>
+ <? } else { ?>
+ <SELECT NAME="paystate">
+ <? foreach ( $states AS $s ) { ?>
+ <OPTION <? if ($s == $paystate ) { echo 'SELECTED'; } ?>><? echo $s; ?>
+ <? } ?>
+ </SELECT></TD>
+ <? } ?>
+ </TR>
<? } ?>
<? if ($show_ss) { ?>
- <TD ALIGN="right">Account holder<BR>Social security or tax ID #</TD><TD>
- <INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="ss" VALUE="<? echo $ss; ?>">
- </TD></TR><TR>
+ <TR>
+ <TD ALIGN="right">Account holder<BR>Social security or tax ID #</TD>
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($ss); ?>
+ <INPUT TYPE="hidden" NAME="ss" VALUE="<? echo $ss; ?>"></TD>
+ <? } else { ?>
+ <INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="ss" VALUE="<? echo $ss; ?>"></TD>
+ <? } ?>
+ </TR>
<? } ?>
<? if ($show_stateid) { ?>
- <TD ALIGN="right">
- Account holder<BR><? echo $stateid_label; ?></TD><TD>
- <INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="stateid" VALUE="<? echo $stateid; ?>"></TD>
- <TD ALIGN="right"><? echo $stateid_state_label; ?></TD>
- <TD><SELECT NAME="stateid_state">
- <? foreach ( $states AS $s ) { ?>
- <OPTION <? if ($s == $stateid_state ) { echo 'SELECTED'; } ?>><? echo $s; ?>
+ <TR>
+ <TD ALIGN="right">Account holder<BR><? echo $stateid_label; ?></TD>
+ <TD <? echo $bgShade; ?>>
+ <? if ($ach_read_only) { echo htmlspecialchars($stateid); ?>
+ <INPUT TYPE="hidden" NAME="stateid" VALUE="<? echo $stateid; ?>"></TD>
+ <TD <? echo $bgShade; ?>> <? echo $stateid_state; ?>
+ <INPUT TYPE="hidden" NAME="stateid_state" VALUE="<? echo $stateid_state; ?>"></TD>
+ <? } else { ?>
+ <INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="stateid" VALUE="<? echo $stateid; ?>"></TD>
+ <TD ALIGN="right"><? echo $stateid_state_label; ?></TD>
+ <TD><SELECT NAME="stateid_state">
+ <? foreach ( $states AS $s ) { ?>
+ <OPTION <? if ($s == $stateid_state ) { echo 'SELECTED'; } ?>><? echo $s; ?>
+ <? } ?>
+ </SELECT></TD>
<? } ?>
- </SELECT></TD></TR><TR>
+ </TR>
<? } ?>
-</TR>
$error = $payment_error;
- ?>
+?>
<? include('elements/error.php'); ?>
<? include('elements/check.php') ?>
+ <? if ($ach_read_only) { ?>
+ <? if ( $payby == 'CARD' ) { ?>
+ <INPUT TYPE="hidden" NAME="auto" VALUE="1">
+ <? } ?>
+ </TD></TR>
+ <? } else { ?>
<TR>
<TD COLSPAN=2>
<INPUT TYPE="checkbox" <? if ( ! $save_unchecked ) { echo 'CHECKED'; } ?> NAME="save" VALUE="1">
Charge future payments to this account automatically
</TD>
</TR>
+ <? } ?>
+
</TABLE>
<BR>
<INPUT TYPE="hidden" NAME="paybatch" VALUE="<? echo $paybatch; ?>">