Fix and cleanup stock takings (PR #667)
This commit is contained in:
parent
c38abedf2a
commit
2d0a81c92d
7 changed files with 38 additions and 62 deletions
|
@ -10,6 +10,13 @@ class StockTakingsController < ApplicationController
|
||||||
StockArticle.undeleted.each { |a| @stock_taking.stock_changes.build(:stock_article => a) }
|
StockArticle.undeleted.each { |a| @stock_taking.stock_changes.build(:stock_article => a) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def new_on_stock_article_create # See publish/subscribe design pattern in /doc.
|
||||||
|
stock_article = StockArticle.find(params[:stock_article_id])
|
||||||
|
@stock_change = StockChange.new(:stock_article => stock_article)
|
||||||
|
|
||||||
|
render :layout => false
|
||||||
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
create!(:notice => I18n.t('stock_takings.create.notice'))
|
create!(:notice => I18n.t('stock_takings.create.notice'))
|
||||||
end
|
end
|
||||||
|
@ -17,39 +24,4 @@ class StockTakingsController < ApplicationController
|
||||||
def update
|
def update
|
||||||
update!(:notice => I18n.t('stock_takings.update.notice'))
|
update!(:notice => I18n.t('stock_takings.update.notice'))
|
||||||
end
|
end
|
||||||
|
|
||||||
def fill_new_stock_article_form
|
|
||||||
article = Article.find(params[:article_id])
|
|
||||||
supplier = article.supplier
|
|
||||||
stock_article = supplier.stock_articles.build(
|
|
||||||
article.attributes.reject { |attr| attr == ('id' || 'type')}
|
|
||||||
)
|
|
||||||
|
|
||||||
render :partial => 'stock_article_form', :locals => {:stock_article => stock_article}
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_stock_article
|
|
||||||
article = StockArticle.new(params[:stock_article])
|
|
||||||
render :update do |page|
|
|
||||||
if article.save
|
|
||||||
page.insert_html :top, 'stock_changes', :partial => 'stock_change',
|
|
||||||
:locals => {:stock_change => article.stock_changes.build}
|
|
||||||
|
|
||||||
page.replace_html 'new_stock_article', :partial => 'stock_article_form',
|
|
||||||
:locals => {:stock_article => StockArticle.new}
|
|
||||||
else
|
|
||||||
page.replace_html 'new_stock_article', :partial => 'stock_article_form',
|
|
||||||
:locals => {:stock_article => article}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def drop_stock_change
|
|
||||||
stock_change = StockChange.find(params[:stock_change_id])
|
|
||||||
stock_change.destroy
|
|
||||||
|
|
||||||
render :update do |page|
|
|
||||||
page.visual_effect :DropOut, "stock_change_#{stock_change.id}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -86,14 +86,4 @@ class StockitController < ApplicationController
|
||||||
@articles = Article.not_in_stock.limit(8).where('name LIKE ?', "%#{params[:term]}%")
|
@articles = Article.not_in_stock.limit(8).where('name LIKE ?', "%#{params[:term]}%")
|
||||||
render :json => @articles.map(&:name)
|
render :json => @articles.map(&:name)
|
||||||
end
|
end
|
||||||
|
|
||||||
def fill_new_stock_article_form
|
|
||||||
article = Article.find(params[:article_id])
|
|
||||||
@supplier = article.supplier
|
|
||||||
stock_article = @supplier.stock_articles.build(
|
|
||||||
article.attributes.reject { |attr| attr == ('id' || 'type')}
|
|
||||||
)
|
|
||||||
|
|
||||||
render :partial => 'form', :locals => {:stock_article => stock_article}
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
- simple_form_for stock_article, url: add_stock_article_stock_takings_path, remote: true do |f|
|
|
||||||
= f.association :supplier
|
|
||||||
= f.input :name
|
|
||||||
= f.input :unit
|
|
||||||
= f.input :note
|
|
||||||
= f.input :price
|
|
||||||
= f.input :tax, :wrapper => :append do
|
|
||||||
= f.input_field :tax
|
|
||||||
%span.add-on %
|
|
||||||
-# untested, because this view is currently not included (?)
|
|
||||||
= f.input :deposit
|
|
||||||
= f.association :article_category
|
|
||||||
= f.submit
|
|
|
@ -1,6 +1,6 @@
|
||||||
- title t('.title')
|
- title t('.title')
|
||||||
|
|
||||||
- simple_form_for(@stock_taking) do |f|
|
= simple_form_for(@stock_taking) do |f|
|
||||||
= f.input :date
|
= f.input :date
|
||||||
= f.input :note
|
= f.input :note
|
||||||
= f.submit
|
= f.submit
|
||||||
|
|
|
@ -1,9 +1,23 @@
|
||||||
- title t('.title')
|
- title t('.title')
|
||||||
|
- content_for :javascript do
|
||||||
|
:javascript
|
||||||
|
$(function() {
|
||||||
|
// Subscribe to database changes.
|
||||||
|
// See publish/subscribe design pattern in /doc.
|
||||||
|
$(document).on('StockArticle#create', function(e) {
|
||||||
|
$.ajax({
|
||||||
|
url: '#{new_on_stock_article_create_stock_takings_path}',
|
||||||
|
type: 'get',
|
||||||
|
data: {stock_article_id: e.stock_article_id},
|
||||||
|
contentType: 'application/json; charset=UTF-8'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
%p
|
%p
|
||||||
%i= t('.text_deviations', inv_link: link_to(t('.temp_inventory'), stock_articles_path)).html_safe
|
%i= t('.text_deviations', inv_link: link_to(t('.temp_inventory'), stock_articles_path)).html_safe
|
||||||
%p= t('.text_need_articles', create_link: link_to(t('.create'), new_stock_article_path)).html_safe
|
%p= t('.text_need_articles', create_link: link_to(t('.create'), new_stock_article_path, :remote => true)).html_safe
|
||||||
|
|
||||||
= simple_form_for(@stock_taking) do |f|
|
= simple_form_for(@stock_taking) do |f|
|
||||||
= f.input :date, as: :date_picker
|
= f.input :date, as: :date_picker
|
||||||
|
|
14
app/views/stock_takings/new_on_stock_article_create.js.erb
Normal file
14
app/views/stock_takings/new_on_stock_article_create.js.erb
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
// Handle more advanced DOM update after AJAX database manipulation.
|
||||||
|
// See publish/subscribe design pattern in /doc.
|
||||||
|
(function() {
|
||||||
|
$('#stock_changes p').removeClass('alert alert-success');
|
||||||
|
|
||||||
|
var stock_change = $('<%= j(render(
|
||||||
|
:partial => 'stock_change',
|
||||||
|
:locals => {
|
||||||
|
:stock_change => @stock_change
|
||||||
|
}
|
||||||
|
)) %>').addClass('alert alert-success');
|
||||||
|
|
||||||
|
$('#stock_changes').prepend(stock_change);
|
||||||
|
})();
|
|
@ -96,8 +96,7 @@ Foodsoft::Application.routes.draw do
|
||||||
|
|
||||||
resources :stock_takings do
|
resources :stock_takings do
|
||||||
collection do
|
collection do
|
||||||
get :fill_new_stock_article_form
|
get :new_on_stock_article_create
|
||||||
post :add_stock_article
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue