Tweaking proxy order state logic

Inherits 'paused' state from standing order if present
This commit is contained in:
Rob Harrington
2017-03-16 11:23:16 +11:00
parent 834e5b702e
commit 3ce8a1abba
3 changed files with 20 additions and 5 deletions

View File

@@ -12,10 +12,9 @@ class ProxyOrder < ActiveRecord::Base
def state
return 'canceled' if canceled?
if !order || order_cycle.orders_open_at > Time.now
'pending'
elsif order_cycle.orders_close_at > Time.now
'cart'
standing_order.paused? ? 'paused' : 'pending'
else
return 'cart' if placed_and_open?
order.state
end
end
@@ -62,4 +61,11 @@ class ProxyOrder < ActiveRecord::Base
save!
order
end
private
def placed_and_open?
order.andand.state == 'complete' &&
order_cycle.orders_close_at > Time.now
end
end

View File

@@ -38,9 +38,17 @@ class StandingOrder < ActiveRecord::Base
end
end
def canceled?
canceled_at.present?
end
def paused?
paused_at.present?
end
def state
return 'canceled' if canceled_at
return 'paused' if paused_at
return 'canceled' if canceled?
return 'paused' if paused?
return nil unless begins_at
if begins_at > Time.zone.now
'pending'

View File

@@ -2427,6 +2427,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
complete: complete
confirm: confirm
delivery: delivery
paused: paused
payment: payment
pending: pending
resumed: resumed