- my $override =
- qsearchs('agent_payment_gateway', { agentnum => $self->agentnum,
- cardtype => $cardtype,
- taxclass => $taxclass, } )
- || qsearchs('agent_payment_gateway', { agentnum => $self->agentnum,
- cardtype => '',
- taxclass => $taxclass, } )
- || qsearchs('agent_payment_gateway', { agentnum => $self->agentnum,
- cardtype => $cardtype,
- taxclass => '', } )
- || qsearchs('agent_payment_gateway', { agentnum => $self->agentnum,
- cardtype => '',
- taxclass => '', } );
-
- my $payment_gateway;
- my $conf = new FS::Conf;
+ my ($override, $payment_gateway);
+ if (exists $options{'load_gatewaynum'}) { # no agent overrides if this opt is in use
+ if ($options{'load_gatewaynum'}) {
+ $payment_gateway = qsearchs('payment_gateway', { gatewaynumnum => $options{'load_gatewaynum'} } );
+ # always fatal
+ die "Could not load payment gateway ".$options{'load_gatewaynum'} unless $payment_gateway;
+ } # else use default, loaded below
+ } else {
+ $override = qsearchs('agent_payment_gateway', { agentnum => $self->agentnum } );
+ }
+