X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fagent.pm;h=f17427517e8c274def42fcdde19c3a53fd05f9c4;hb=40a7b3dc653e099f7bd0bd762b649b04c4432db2;hp=5fbe2c46d5d69f41c65563be681ce490a88d256b;hpb=8c804ba59c8b284e1294e9928b5412fdf31e412c;p=freeside.git diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index 5fbe2c46d..f17427517 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -206,7 +206,10 @@ sub ticketing_queue { Returns a payment gateway object (see L) for this agent. -Currently available options are I, I, and I. +Currently available options are I, I, I, and I. + +If I is set, and no gateway is available, then the empty string +will be returned instead of throwing a fatal exception. If I is set to the number of an invoice (see L) then an attempt will be made to select a gateway suited for the taxes paid on @@ -244,7 +247,7 @@ sub payment_gateway { #look for an agent gateway override first my $cardtype; - if ( $options{method} && $options{method} eq 'CC' ) { + if ( $options{method} && $options{method} eq 'CC' && $options{payinfo} ) { $cardtype = cardtype($options{payinfo}); } elsif ( $options{method} && $options{method} eq 'ECHECK' ) { $cardtype = 'ACH'; @@ -276,8 +279,13 @@ sub payment_gateway { # agent_payment_gateway referenced payment_gateway my $conf = new FS::Conf; - die "Real-time processing not enabled\n" - unless $conf->exists('business-onlinepayment'); + unless ( $conf->exists('business-onlinepayment') ) { + if ( $options{'nofatal'} ) { + return ''; + } else { + die "Real-time processing not enabled\n"; + } + } #load up config my $bop_config = 'business-onlinepayment';