foodsoft/app/controllers/stockit_controller.rb

89 lines
2.4 KiB
Ruby
Raw Permalink Normal View History

2009-01-18 17:42:51 +01:00
class StockitController < ApplicationController
def index
@stock_articles = StockArticle.undeleted.includes(:supplier, :article_category)
.order('suppliers.name, article_categories.name, articles.name')
end
2016-05-20 21:30:56 +02:00
def index_on_stock_article_create # See publish/subscribe design pattern in /doc.
@stock_article = StockArticle.find(params[:id])
2016-05-20 21:30:56 +02:00
render layout: false
end
def index_on_stock_article_update # See publish/subscribe design pattern in /doc.
@stock_article = StockArticle.find(params[:id])
2016-05-20 21:30:56 +02:00
render layout: false
end
def show
@stock_article = StockArticle.find(params[:id])
@stock_changes = @stock_article.stock_changes.order('stock_changes.created_at DESC')
end
# three possibilites to fill a new_stock_article form
# (1) start from blank or use params
def new
@stock_article = StockArticle.new(params[:stock_article])
render layout: false
end
2016-05-20 21:30:56 +02:00
# (2) StockArticle as template
def copy
@stock_article = StockArticle.find(params[:stock_article_id]).dup
2016-05-20 21:30:56 +02:00
render layout: false
end
2016-05-20 21:30:56 +02:00
# (3) non-stock Article as template
def derive
@stock_article = Article.find(params[:old_article_id]).becomes(StockArticle).dup
2016-05-20 21:30:56 +02:00
render layout: false
end
def edit
@stock_article = StockArticle.find(params[:id])
render layout: false
end
def create
@stock_article = StockArticle.new({ quantity: 0 }.merge(params[:stock_article]))
2016-05-20 21:30:56 +02:00
@stock_article.save!
render layout: false
2016-05-20 21:30:56 +02:00
rescue ActiveRecord::RecordInvalid
render action: 'new', layout: false
2009-01-18 17:42:51 +01:00
end
def update
@stock_article = StockArticle.find(params[:id])
@stock_article.update!(params[:stock_article])
render layout: false
2016-05-20 21:30:56 +02:00
rescue ActiveRecord::RecordInvalid
render action: 'edit', layout: false
end
def show_on_stock_article_update # See publish/subscribe design pattern in /doc.
@stock_article = StockArticle.find(params[:id])
2016-05-20 21:30:56 +02:00
render layout: false
end
def destroy
@stock_article = StockArticle.find(params[:id])
@stock_article.mark_as_deleted
render layout: false
rescue StandardError => e
render partial: 'destroy_fail', layout: false,
locals: { fail_msg: I18n.t('errors.general_msg', msg: e.message) }
end
# TODO: Fix this!!
def articles_search
@articles = Article.not_in_stock.limit(8).where('name LIKE ?', "%#{params[:term]}%")
render json: @articles.map(&:name)
end
2009-01-18 17:42:51 +01:00
end