foodsoft/app/helpers/group_orders_helper.rb

58 lines
2 KiB
Ruby
Raw Normal View History

module GroupOrdersHelper
def data_to_js(ordering_data)
ordering_data[:order_articles].map do |id, data|
[id, data[:price], data[:unit], data[:total_price], data[:others_quantity], data[:others_tolerance],
data[:used_quantity], data[:quantity_available]]
end.map do |row|
"addData(#{row.join(', ')});"
end.join("\n")
end
2013-11-25 10:04:44 +01:00
# Returns a link to the page where a group_order can be edited.
# If the option :show is true, the link is for showing the group_order.
def link_to_ordering(order, options = {}, &block)
2013-11-25 10:04:44 +01:00
group_order = order.group_order(current_user.ordergroup)
path = if options[:show] && group_order
group_order_path(group_order)
elsif group_order
edit_group_order_path(group_order, order_id: order.id)
else
new_group_order_path(order_id: order.id)
end
2013-11-25 10:04:44 +01:00
options.delete(:show)
name = block_given? ? capture(&block) : order.name
2013-11-25 10:04:44 +01:00
path ? link_to(name, path, options) : name
2013-11-13 16:29:30 +01:00
end
# Return css class names for order result table
def order_article_class_name(quantity, tolerance, result)
if quantity + tolerance > 0
result > 0 ? 'success' : 'failed'
else
'ignored'
end
end
def get_order_results(order_article, group_order_id)
goa = order_article.group_order_articles.detect { |goa| goa.group_order_id == group_order_id }
quantity, tolerance, result, sub_total = if goa.present?
[goa.quantity, goa.tolerance, goa.result, goa.total_price(order_article)]
else
[0, 0, 0, 0]
end
{ group_order_article: goa, quantity: quantity, tolerance: tolerance, result: result, sub_total: sub_total }
end
def get_missing_units_css_class(quantity_missing)
if quantity_missing == 1
'missing-few'
elsif quantity_missing == 0
''
else
'missing-many'
end
end
2013-11-13 16:29:30 +01:00
end