Conceptual architectural change for CLI user app
This commit is contained in:
+13
-9
@@ -282,14 +282,14 @@ class List
|
||||
state == 'closed'
|
||||
end
|
||||
|
||||
def place_order(product_orders: [], user: nil, employee: nil)
|
||||
def place_order(product_orders: [], user: nil, employee: nil, first_order: true)
|
||||
return false unless product_orders.any?
|
||||
order = Order.create list: self, supplier: supplier, user: user, employee: employee, section_id: section_id, table_id: table_id
|
||||
return unless order.id
|
||||
orders_placed_count = supplier.increment_orders_placed_count!
|
||||
loaded_products = self.class.database.load_document product_orders.map{|po| po['product_id']}
|
||||
loaded_products = self.class.database.load_document product_orders.map{|po| po['product_id'] || po['product']}
|
||||
product_orders.each do |product_order|
|
||||
next unless product = loaded_products.find{|p| p.id == product_order['product_id']} # to get the price
|
||||
next unless product = loaded_products.find{|p| p.id == product_order['product_id'] or p.id == product_order['product']} # to get the price and current product name
|
||||
quantity = product_order['quantity'].to_i
|
||||
if quantity > 0
|
||||
ProductOrder.create(
|
||||
@@ -306,12 +306,16 @@ class List
|
||||
save
|
||||
|
||||
|
||||
# broadcast_users 'new_order', order: order.with_products_as_json, total_amount: price
|
||||
broadcast_users 'new_order', Users::OrderSerializer.new(order).as_json
|
||||
# broadcast_users 'orders_placed_count', count: orders_placed_count
|
||||
|
||||
broadcast_supplier supplier.id, 'list_update', Supplier::ListSerializer.new(self).as_json.merge(new_order_id: order.id)
|
||||
# broadcast_supplier supplier.id, 'new_order', OrderSerializer.new(order)
|
||||
if first_order
|
||||
# broadcast_users 'orders_placed_count', count: orders_placed_count
|
||||
broadcast_supplier supplier.id, 'list_update', Supplier::ListSerializer.new(self).as_json.merge(new_order_id: order.id)
|
||||
# broadcast_supplier supplier.id, 'new_order', OrderSerializer.new(order)
|
||||
else
|
||||
# broadcast_users 'new_order', order: order.with_products_as_json, total_amount: price
|
||||
user_payload = JSONAPI::Serializer.serialize(order, serializer: Users::OrderSerializer, include: %w[product_orders])
|
||||
broadcast_users 'new_order', user_payload
|
||||
broadcast_supplier supplier.id, 'list_update', Supplier::ListSerializer.new(self).as_json.merge(new_order_id: order.id)
|
||||
end
|
||||
broadcast_supplier supplier.id, 'orders_placed_count', count: orders_placed_count
|
||||
order
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user