44 lines
1.3 KiB
CoffeeScript
44 lines
1.3 KiB
CoffeeScript
attr = DS.attr
|
|
Qsupplier.App.List = DS.Model.extend
|
|
state: attr 'string'
|
|
needs_help: attr 'boolean'
|
|
needs_payment: attr 'boolean'
|
|
user_requests_closing: attr('boolean')
|
|
users: DS.hasMany('user')
|
|
is_paid: attr 'boolean'
|
|
has_active_orders: attr 'boolean'
|
|
price: attr 'number'
|
|
closed_at: DS.attr('date')
|
|
#table_number: attr 'number'
|
|
table: DS.belongsTo('table', inverse: 'active_list')
|
|
#users: DS.hasMany('user', inverse: 'active_list')
|
|
orders: DS.hasMany('order')
|
|
section: DS.belongsTo('section')
|
|
section_id: attr('string')
|
|
active: ( -> @get('state') == 'active' ).property('state')
|
|
markClosed: ->
|
|
@set('state', 'closed')
|
|
@set 'has_active_orders', false
|
|
@markHelped()
|
|
@markIsPaid()
|
|
markHelped: ->
|
|
@set 'needs_help', false
|
|
markNeedsHelp: ->
|
|
@set 'needs_help', true
|
|
markNeedsPayment: ->
|
|
@set 'needs_payment', true
|
|
markIsPaid: ->
|
|
@set 'needs_payment', false
|
|
total: (->
|
|
@get('orders').getEach('total').reduce(((sum, total) -> sum + total), 0)
|
|
).property('orders.@each.total')
|
|
|
|
close: ->
|
|
@markClosed()
|
|
$.post Routes.supplier_close_list_path(), list_id: @id
|
|
|
|
is_helped: ->
|
|
@markHelped()
|
|
$.post Routes.supplier_mark_list_as_helped_path(), list_id: @id
|
|
sorted_orders: (-> @get('orders').sortBy('created_at').reverseObjects()).property('orders.@each.isLoaded')
|