From 3ce8a1abbab1557c07358f23d4ea1719dcd31e04 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 16 Mar 2017 11:23:16 +1100 Subject: [PATCH] Tweaking proxy order state logic Inherits 'paused' state from standing order if present --- app/models/proxy_order.rb | 12 +++++++++--- app/models/standing_order.rb | 12 ++++++++++-- config/locales/en.yml | 1 + 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/models/proxy_order.rb b/app/models/proxy_order.rb index 431932ad39..68f0f46c6e 100644 --- a/app/models/proxy_order.rb +++ b/app/models/proxy_order.rb @@ -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 diff --git a/app/models/standing_order.rb b/app/models/standing_order.rb index 9a3dc9673d..471cca11f0 100644 --- a/app/models/standing_order.rb +++ b/app/models/standing_order.rb @@ -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' diff --git a/config/locales/en.yml b/config/locales/en.yml index 7b7e27ab92..9edd595659 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -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