Coupon system optimization I have the following code for my coupon system. It should work but I'm sure I can optimize it. 

Any suggestions would be welcome.

@price_to_pay = @booking_request.guests * @table_offer.price_cents / 100
@remaining = @coupon.current_amount - @price_to_pay
if @remaining &gt; 0
  @coupon.current_amount = @remaining
  @price_to_pay = 0
elsif @remaining = 0
  @coupon.current_amount = 0
  @price_to_pay = 0
elsif @remaining &lt; 0
  @coupon.current_amount = @remaining
  @price_to_pay = @remaining * -1
end
coupon.save
I think this replicates the logic:

price = @booking_request.guests * @table_offer.price_cents / 100
@remaining = @coupon.current_amount - price
@coupon.current_amount = @remaining
@price_to_play = @remaining &gt;= 0 ? 0 : -@remaining
coupon.save


Note that I avoid setting @price_to_play to a value and changing it afterwards, that kind of variable re-using makes code harder to understand.