+
+ #pay fields should all come from either cust_payby or options, not both
+ # in theory, could just pass payby, and use it to select cust_payby,
+ # but nothing currently needs that, so not implementing it now
+ die "Incomplete payment details"
+ if ($options{payby} || $options{payinfo} || $options{paydate} || $options{payname})
+ && !($options{payby} && $options{payinfo} && $options{paydate} && $options{payname});
+
+ #false laziness with Billing_Realtime
+ my @cust_payby = $self->cust_payby('CARD','CHEK');
+
+ # batch can't try out every one like realtime, just use first one
+ my $cust_payby = $cust_payby[0];
+
+ die "No customer payment info found"
+ unless $options{payinfo} || $cust_payby;
+
+ my $payby = $options{payby} || $cust_payby->payby;