';
- my $tail = qq().
+ my $tail = qq().
qq().
qq( ).
qq( qq/Phone Bill Billing/,
'BILL' => qq/Billing/,
'COMP' => qq/Complimentary/,
+ '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 ( @paybys ) {
+ foreach my $payby_option ( grep { exists( $payby_index{$_} ) } @paybys ) {
$options{$payby_option} = $payby_index{$payby_option};
}
$options{$payby} = $payby_index{$payby}
unless exists($options{$payby});
+ #don't want to show multiple "Credit card" or "Check" options
+ my %paybyremove = (
+ 'CARD' => 'DCRD',
+ 'DCRD' => 'CARD',
+ 'CHEK' => 'DCHK',
+ 'DCHK' => 'CHEK',
+ );
+ delete( $options{ $paybyremove{$payby} } );
+ delete $options{'DCRD'} unless $payby eq 'DCRD' || ! exists $options{'CARD'};
+ delete $options{'DCHK'} unless $payby eq 'DCHK' || ! exists $options{'CHEK'};
+
+ ## set default layer to first payby.
+ @p = keys %options; $payby = $p[0];
+
HTML::Widgets::SelectLayers->new(
options => \%options,
selected_layer => $payby,
# form_name => 'dummy',
# form_action => 'dummy.cgi',
- layer_callback => sub { my $layer = shift; return '
'.$paybychecked{$layer}.qq!$tail!; },
+ layer_callback => sub { my $layer = shift; use MyLog; use Data::Dumper; MyLog->mylog("my layer $layer\n"); return '