Added recursive case to deal with multiple discounts in same batch