foodsoft/app/controllers/finance/receive_controller.rb

38 lines
1.2 KiB
Ruby

class Finance::ReceiveController < Finance::BaseController
def edit
@order = Order.find(params[:id])
@order_articles = @order.order_articles.ordered.includes(:article)
end
def update
OrderArticle.transaction do
params[:order_articles].each do |oa_id, oa_params|
unless oa_params.blank?
oa = OrderArticle.find(oa_id)
# update attributes
oa.update_attributes!(oa_params)
# and process consequences
oa.redistribute(oa.units_received * oa.price.unit_quantity) unless oa.units_received.blank?
oa.save!
end
end
flash[:notice] = I18n.t('finance.receive.update.notice')
redirect_to finance_order_index_path
end
end
# ajax add article
def add_article
@order = Order.find(params[:receive_id])
@order_article = @order.order_articles.where(:article_id => params[:article_id]).includes(:article).first
# we need to create the order article if it's not part of the current order
if @order_article.nil?
@order_article = @order.order_articles.build({order: @order, article_id: params[:article_id]})
@order_article.save!
end
end
end