Major supplier refactor making the whole system work better

This commit is contained in:
2014-08-07 15:50:06 +02:00
parent e61767fe78
commit b4353113e1
40 changed files with 6614 additions and 4354 deletions
+1
View File
@@ -142,6 +142,7 @@ class List
set_price # should not be needed, but extra secure
orders.map(&:close!) # close the connected orders
self.state = 'closed'
self.is_helped! if needs_help?
self.user_requests_closing = false # if a user requested closing, not needed anymore
self.closed_at = Time.now
if save
+7 -1
View File
@@ -129,7 +129,13 @@ class Order
#TODO fix me
def close!
self.state = 'closed' if placed? || active?
if placed? || active?
decrement_counter = placed? ? 'placed' : 'in_process'
self.state = 'closed'
supplier.public_send "decrement_orders_#{decrement_counter}_count!"
end
if save
broadcast_user user.id, 'order_closed', id: id if user
broadcast_supplier supplier_id, 'order_closed', id: id
+2
View File
@@ -58,6 +58,8 @@ class Supplier
# Set all known counters to zero
Qwaiter::Couchbase.flush_counters!
Qwaiter::Counter.connection.flush if Qwaiter::Counter.connection.respond_to?(:flush)
spec = Order.by_supplier_id_and_state(reduce: true, group_level: 2)
reset_order_counters_with_spec spec
end