Fixed updating order article in stockit balancing.

This commit is contained in:
Benjamin Meichsner 2013-03-17 18:33:04 +01:00
parent f7e885de7e
commit dd0bd0ad7e
3 changed files with 27 additions and 23 deletions

View file

@ -26,7 +26,7 @@ class Finance::OrderArticlesController < ApplicationController
@order = Order.find(params[:order_id]) @order = Order.find(params[:order_id])
@order_article = OrderArticle.find(params[:id]) @order_article = OrderArticle.find(params[:id])
begin begin
@order_article.update_article_and_price!(params[:article], params[:article_price], params[:order_article]) @order_article.update_article_and_price!(params[:order_article], params[:article], params[:article_price])
rescue rescue
render action: :edit render action: :edit
end end

View file

@ -93,7 +93,7 @@ class OrderArticle < ActiveRecord::Base
end end
# Updates order_article and belongings during balancing process # Updates order_article and belongings during balancing process
def update_article_and_price!(article_attributes, price_attributes, order_article_attributes) def update_article_and_price!(order_article_attributes, article_attributes, price_attributes = nil)
OrderArticle.transaction do OrderArticle.transaction do
# Updates self # Updates self
self.update_attributes!(order_article_attributes) self.update_attributes!(order_article_attributes)
@ -102,6 +102,7 @@ class OrderArticle < ActiveRecord::Base
article.update_attributes!(article_attributes) article.update_attributes!(article_attributes)
# Updates article_price belonging to current order article # Updates article_price belonging to current order article
if price_attributes.present?
article_price.attributes = price_attributes article_price.attributes = price_attributes
if article_price.changed? if article_price.changed?
# Updates also price attributes of article if update_current_price is selected # Updates also price attributes of article if update_current_price is selected
@ -119,6 +120,7 @@ class OrderArticle < ActiveRecord::Base
end end
end end
end end
end
def update_current_price=(value) def update_current_price=(value)
@update_current_price = (value == true or value == '1') ? true : false @update_current_price = (value == true or value == '1') ? true : false

View file

@ -5,18 +5,20 @@
.modal-body .modal-body
= form.input :units_to_order = form.input :units_to_order
= simple_fields_for @order_article.article do |f| = simple_fields_for :article, @order_article.article do |f|
= f.input :name = f.input :name
= f.input :order_number = f.input :order_number
= f.input :unit = f.input :unit
= simple_fields_for @order_article.article_price do |f|
- if @order_article.article.is_a?(StockArticle)
%div.alert Preise von Lagerartikeln können nicht geändert werden!
- else
= simple_fields_for :article_price, @order_article.article_price do |f|
= f.input :unit_quantity = f.input :unit_quantity
= f.input :price = f.input :price
= f.input :tax = f.input :tax
= f.input :deposit = f.input :deposit
= form.input :update_current_price, as: :boolean = form.input :update_current_price, as: :boolean
.modal-footer .modal-footer
= button_tag "Schließen", class: 'btn', data: {dismiss: 'modal'} = button_tag "Schließen", class: 'btn', data: {dismiss: 'modal'}
= form.submit class: 'btn btn-primary' = form.submit class: 'btn btn-primary'