fix order article add + test
This commit is contained in:
parent
775137f7c0
commit
f8fca4d630
4 changed files with 28 additions and 16 deletions
|
@ -1,19 +1,8 @@
|
||||||
module OrderArticlesHelper
|
module OrderArticlesHelper
|
||||||
|
|
||||||
def new_order_articles_collection(&block)
|
def article_label_with_unit(article)
|
||||||
if @order.stockit?
|
pkg_info = pkg_helper(article, plain: true)
|
||||||
articles = StockArticle.undeleted.reorder('articles.name')
|
"#{article.name} (#{[article.unit, pkg_info].reject(&:blank?).join(' ')})"
|
||||||
else
|
|
||||||
articles = @order.supplier.articles.undeleted.reorder('articles.name')
|
|
||||||
end
|
|
||||||
unless block_given?
|
|
||||||
block = Proc.new do |a|
|
|
||||||
pkg_info = pkg_helper(a, plain: true)
|
|
||||||
a.name + ' ' +
|
|
||||||
"(#{a.unit}" +
|
|
||||||
(pkg_info.blank? ? '' : " #{pkg_info}") + ")"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
articles.map {|a| block.call(a)}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -52,6 +52,14 @@ class Order < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def supplier_articles
|
||||||
|
if stockit?
|
||||||
|
StockArticle.undeleted.reorder('articles.name')
|
||||||
|
else
|
||||||
|
supplier.articles.undeleted.reorder('articles.name')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Save ids, and create/delete order_articles after successfully saved the order
|
# Save ids, and create/delete order_articles after successfully saved the order
|
||||||
def article_ids=(ids)
|
def article_ids=(ids)
|
||||||
@article_ids = ids
|
@article_ids = ids
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
= link_to t('ui.marks.close').html_safe, '#', class: 'close', data: {dismiss: 'modal'}
|
= link_to t('ui.marks.close').html_safe, '#', class: 'close', data: {dismiss: 'modal'}
|
||||||
%h3= t '.title'
|
%h3= t '.title'
|
||||||
.modal-body
|
.modal-body
|
||||||
= form.association :article, collection: new_order_articles_collection
|
= form.association :article, collection: @order.supplier_articles, label_method: lambda {|a| article_label_with_unit(a)}
|
||||||
.modal-footer
|
.modal-footer
|
||||||
= link_to t('ui.close'), '#', class: 'btn', data: {dismiss: 'modal'}
|
= link_to t('ui.close'), '#', class: 'btn', data: {dismiss: 'modal'}
|
||||||
= form.submit class: 'btn btn-primary'
|
= form.submit class: 'btn btn-primary'
|
||||||
|
|
|
@ -133,6 +133,7 @@ describe 'settling an order', :type => :feature do
|
||||||
fill_in 'group_order_article_result', :with => 8
|
fill_in 'group_order_article_result', :with => 8
|
||||||
find('input[type="submit"]').click
|
find('input[type="submit"]').click
|
||||||
end
|
end
|
||||||
|
expect(page).to_not have_selector('form#new_group_order_article')
|
||||||
expect(page).to have_content(user.ordergroup.name)
|
expect(page).to have_content(user.ordergroup.name)
|
||||||
goa = GroupOrderArticle.last
|
goa = GroupOrderArticle.last
|
||||||
expect(goa).to_not be_nil
|
expect(goa).to_not be_nil
|
||||||
|
@ -163,6 +164,20 @@ describe 'settling an order', :type => :feature do
|
||||||
expect(find("#group_order_articles_#{oa.id} tfoot td:nth-child(3)").text.to_f).to eq 8
|
expect(find("#group_order_articles_#{oa.id} tfoot td:nth-child(3)").text.to_f).to eq 8
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'can add an article' do
|
||||||
|
new_article = create :article, supplier: supplier
|
||||||
|
expect(page).to_not have_content(new_article.name)
|
||||||
|
click_link I18n.t('finance.balancing.edit_results_by_articles.add_article')
|
||||||
|
expect(page).to have_selector('form#new_order_article')
|
||||||
|
within('#new_order_article') do
|
||||||
|
select new_article.name, :from => 'order_article_article_id'
|
||||||
|
find('input[type="submit"]').click
|
||||||
|
end
|
||||||
|
expect(page).to_not have_selector('form#new_order_article')
|
||||||
|
expect(page).to have_content(new_article.name)
|
||||||
|
expect(order.order_articles.where(article_id: new_article.id)).to_not be nil
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue