Save progress
This commit is contained in:
+22
-16
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user