Allow to specify an order schedule for new orders.

This commit is contained in:
wvengen 2014-11-22 00:33:16 +01:00
parent 6e990fed4c
commit 219eb71bc9
16 changed files with 204 additions and 8 deletions

View file

@ -95,6 +95,21 @@ class Order < ActiveRecord::Base
!ends.nil? && ends < Time.now
end
# sets up first guess of dates when initializing a new object
# I guess `def initialize` would work, but it's tricky http://stackoverflow.com/questions/1186400
def init_dates
self.starts ||= Time.now
if FoodsoftConfig[:order_schedule]
# try to be smart when picking a reference day
last = (DateTime.parse(FoodsoftConfig[:order_schedule][:initial]) rescue nil)
last ||= Order.finished.reorder(:starts).first.try(:starts)
last ||= self.starts
# adjust end date
self.ends ||= FoodsoftDateUtil.next_occurrence last, self.starts, FoodsoftConfig[:order_schedule][:ends]
end
self
end
# search GroupOrder of given Ordergroup
def group_order(ordergroup)
group_orders.where(:ordergroup_id => ordergroup.id).first