diff --git a/app/assets/javascripts/supplier/app/models/list.js.coffee b/app/assets/javascripts/supplier/app/models/list.js.coffee index 9db865c4..e3a53099 100644 --- a/app/assets/javascripts/supplier/app/models/list.js.coffee +++ b/app/assets/javascripts/supplier/app/models/list.js.coffee @@ -3,6 +3,7 @@ Qsupplier.App.List = DS.Model.extend state: attr 'string' needs_help: attr 'boolean' needs_payment: attr 'boolean' + user_requests_closing: attr('boolean') is_paid: attr 'boolean' has_active_orders: attr 'boolean' price: attr 'number' diff --git a/app/assets/javascripts/user/app/models/list.js.coffee b/app/assets/javascripts/user/app/models/list.js.coffee index 4fe6c84b..d46a8b46 100644 --- a/app/assets/javascripts/user/app/models/list.js.coffee +++ b/app/assets/javascripts/user/app/models/list.js.coffee @@ -3,6 +3,7 @@ App.List = DS.Model.extend orders: DS.hasMany('order') needs_help: attr('boolean') needs_payment: attr('boolean') + user_requests_closing: attr('boolean') supplier_name: attr('string') state: attr('string') price: attr('number') diff --git a/app/assets/javascripts/waiter/app/models/list.js.coffee b/app/assets/javascripts/waiter/app/models/list.js.coffee index fdf529a4..206fd99a 100644 --- a/app/assets/javascripts/waiter/app/models/list.js.coffee +++ b/app/assets/javascripts/waiter/app/models/list.js.coffee @@ -3,6 +3,7 @@ App.List = DS.Model.extend state: attr 'string' needs_help: attr 'boolean' needs_payment: attr 'boolean' + user_requests_closing: attr('boolean') is_paid: attr 'boolean' has_active_orders: attr 'boolean' price: attr 'number' diff --git a/app/models/list.rb b/app/models/list.rb index 2e9028d0..7b77482c 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -11,6 +11,7 @@ class List property :price, type: Float property :is_paid, type: :boolean, default: false property :paid_at, type: Time + property :user_requests_closing, :boolean, default: false has_many :orders, dependent: :destroy belongs_to :table @@ -185,6 +186,17 @@ class List end end + def user_requests_closing! + return if user_requests_closing? + self.user_requests_closing = true + if save + broadcast_users 'user_requests_closing', id: id + broadcast_employees 'user_requests_closing', id: id + broadcast_supplier supplier_id, 'user_requests_closing', id: id + end + #pending + end + def move_to_table! to_table UserTableMove.create list: self, from_table_id: table_id, to_table: to_table @@ -299,12 +311,6 @@ class List order end - def broadcast_users(message, content = {}) - for user_id in Array.wrap(user_ids) - broadcast_user user_id, message, content - end - end - def as_json(*args) super.merge(id: id, table_number: table_number, has_active_orders: has_active_orders? ) end @@ -398,4 +404,17 @@ class List hl[:section_title] = table.section.try(:title) @with_info_as_json = hl end + + private + + def broadcast_users(message, content = {}) + for user_id in Array.wrap(user_ids) + broadcast_user user_id, message, content + end + end + + def broadcast_employees(message, content = {}) + #PENDING + end + end diff --git a/app/serializers/list_serializer.rb b/app/serializers/list_serializer.rb index 164e469c..69fe9251 100644 --- a/app/serializers/list_serializer.rb +++ b/app/serializers/list_serializer.rb @@ -1,7 +1,7 @@ class ListSerializer < Qwaiter::Serializer # user ids for facebook pictures #embed :ids - attributes :state, :needs_help, :needs_payment, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_id #, :has_active_orders + attributes :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_id #, :has_active_orders #def has_active_orders #object.has_active_orders? diff --git a/app/serializers/user_extended_list_serializer.rb b/app/serializers/user_extended_list_serializer.rb index 1b5e164d..8f1d4533 100644 --- a/app/serializers/user_extended_list_serializer.rb +++ b/app/serializers/user_extended_list_serializer.rb @@ -9,7 +9,7 @@ class UserExtendedListSerializer < Qwaiter::Serializer # user ids for facebook pictures self.root = :list embed :ids, include: true - attributes :extended_version, :state, :needs_help, :needs_payment, :is_paid, :price, + attributes :extended_version, :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_id #:supplier_orders_in_process_count, :supplier_orders_placed_count diff --git a/app/serializers/user_list_serializer.rb b/app/serializers/user_list_serializer.rb index b12810a1..43c51412 100644 --- a/app/serializers/user_list_serializer.rb +++ b/app/serializers/user_list_serializer.rb @@ -1,7 +1,7 @@ class UserListSerializer < Qwaiter::Serializer # user ids for facebook pictures #embed :ids - attributes :state, :needs_help, :needs_payment, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_name + attributes :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_name #def has_active_orders #object.has_active_orders?