Save progress

This commit is contained in:
2014-03-30 15:55:22 +02:00
parent e179f6e582
commit 013a41b9f6
71 changed files with 1699 additions and 107 deletions
+22 -16
View File
@@ -7,7 +7,7 @@ class List
property :needs_help, type: :boolean, default: false
property :needs_payment, type: :boolean, default: false
property :closed_at, type: Time
property :join_requests, type: Array, default: []
property :join_request_user_ids, type: Array, default: []
property :price, type: Float
property :is_paid, type: :boolean, default: false
property :paid_at, type: Time
@@ -177,6 +177,7 @@ class List
def is_paid!
self.is_paid = true
self.needs_payment = false
self.paid_at ||= Time.now
if save
broadcast_users 'list_is_paid', id: id
@@ -192,18 +193,18 @@ class List
self.section_id = to_table.section_id
if save
# Update the section of an order
orders.each do |order|
order.section_id = self.section_id
order.save
end
#orders.each do |order|
#order.section_id = self.section_id
#order.save
#end
broadcast_users 'list_changed_table', list: as_json, section_title: to_table.section.try(:title), from_table_id: from_table
broadcast_supplier supplier_id, 'list_changed_table', list: as_json, section_title: to_table.section.try(:title), from_table_id: from_table
end
end
def approve_join_request_for_user!(user)
if join_requests.include?(user.id)
join_requests.delete(user.id)
if join_request_user_ids.include?(user.id)
join_request_user_ids.delete(user.id)
user.active_list_id = self.id
add_user(user)
user.save
@@ -215,7 +216,7 @@ class List
end
def unlink_user(user)
changed = join_requests.delete(user.id)
changed = join_request_user_ids.delete(user.id)
changed ||= Array.wrap(user_ids).delete(user.id)
if user.active_list_id == id
user.active_list_id = nil
@@ -225,8 +226,8 @@ class List
end
def send_table_join_request_for_user!(requester)
unless join_requests.include?(requester.id)
self.join_requests << requester.id
unless join_request_user_ids.include?(requester.id)
self.join_request_user_ids << requester.id
self.is_dirty
if save
for user in users
@@ -237,8 +238,8 @@ class List
end
def reject_join_request_for_user!(user_id)
if join_requests.include?(user_id)
join_requests.delete(user_id)
if join_request_user_ids.include?(user_id)
join_request_user_ids.delete(user_id)
self.is_dirty
if save
broadcast_user user_id, 'join_request_rejected'
@@ -269,14 +270,14 @@ class List
def place_order(products, user: nil, employee: nil)
return false unless products.any?
order = Order.create list: self, supplier: supplier, user: user, employee: employee, section_id: section_id
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 products.keys
products.each do |product_id, quantity|
quantity = quantity.to_i
product = loaded_products.find{|p| p.id == product_id} # to get the price
ProductOrder.create order: order, product_id: product_id, quantity: quantity, price: product.price if quantity > 0
ProductOrder.create order: order, product_id: product_id, quantity: quantity, price: product.price, product_name: product.name if quantity > 0
end
set_price
save
@@ -366,18 +367,23 @@ class List
# Return a join requests object in the form of:
# {join_request: [{user_id: '1saf3...', user_email: 'info@qwaiter.com'}, [....]]}
# DEPRICATED IN EMBER
def join_requests_as_json
return @join_requests_as_json if @join_requests_as_json.present?
h = {join_requests: []}
# Handle join requests
if join_requests.any?
for user in self.class.database.load_document(join_requests)
if join_request_user_ids.any?
for user in self.class.database.load_document(join_request_user_ids)
h[:join_requests] << {user_id: user.id, user_email: user.email}
end
end
@join_requests_as_json = h
end
def join_requests
@join_requests ||= join_request_user_ids.any? ? self.class.database.load_document(join_request_user_ids).map{|user| JoinRequest.new(user: user, list: self) } : []
end
def product_categories
supplier.product_categories
end