diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Conf.pm | 9 | ||||
| -rw-r--r-- | FS/FS/cust_main.pm | 13 | 
2 files changed, 21 insertions, 1 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 318d6ad0f..b91651429 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -2112,6 +2112,15 @@ httemplate/docs/config.html      'type'        => 'text',    }, +  { +    'key'         => 'disable_void_after', +    'section'     => 'billing', +    'description' => 'Number of seconds after which freeside won\'t attempt to VOID a payment first when performing a refund.', +    'type'        => 'text', +  }, + +   +  );  1; diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 55f012a0e..e5688d5b2 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -3032,8 +3032,19 @@ sub realtime_refund_bop {      if length($auth); #echeck/ACH transactions have an order # but no auth                        #(at least with authorize.net) +  my $disable_void_after; +  if ($conf->exists('disable_void_after') +      && $conf->config('disable_void_after') =~ /^(\d+)$/) { +    $disable_void_after = $1; +  } +    #first try void if applicable -  if ( $cust_pay && $cust_pay->paid == $amount ) { #and check dates? +  if ( $cust_pay && $cust_pay->paid == $amount +    && ( +      ( not defined($disable_void_after) ) +      || ( time < ($cust_pay->_date + $disable_void_after ) ) +    ) +  ) {      warn "  attempting void\n" if $DEBUG > 1;      my $void = new Business::OnlinePayment( $processor, @bop_options );      $void->content( 'action' => 'void', %content );  | 
