Last part of order refactoring. Now order_article create/update is possible.
This commit is contained in:
parent
4d796b8e73
commit
6202e05841
14 changed files with 161 additions and 97 deletions
|
|
@ -42,70 +42,86 @@ class Finance::BalancingController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
#TODO: Implement create/update of articles/article_prices...
|
||||
# def new_order_article
|
||||
# @order = Order.find(params[:id])
|
||||
# order_article = @order.order_articles.build(:tax => 7, :deposit => 0)
|
||||
# render :update do |page|
|
||||
# page["edit_box"].replace_html :partial => "new_order_article", :locals => {:order_article => order_article}
|
||||
# page["edit_box"].show
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# def create_order_article
|
||||
# @order = Order.find(params[:order_article][:order_id])
|
||||
# order_article = OrderArticle.new(params[:order_article])
|
||||
#
|
||||
# render :update do |page|
|
||||
# if order_article.save
|
||||
# page["edit_box"].hide
|
||||
# page["summary"].replace_html :partial => 'summary'
|
||||
# page.insert_html :bottom, "result_table", :partial => "order_article_result", :locals => {:order_article => order_article}
|
||||
# page["order_article_#{order_article.id}"].visual_effect :highlight, :duration => 2
|
||||
# page["group_order_articles_#{order_article.id}"].show
|
||||
# else
|
||||
# page["edit_box"].replace_html :partial => "new_order_article", :locals => {:order_article => order_article}
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# def editArticleResult
|
||||
# @article = OrderArticleResult.find(params[:id])
|
||||
# render :update do |page|
|
||||
# page["edit_box"].replace_html :partial => 'editArticleResult'
|
||||
# page["edit_box"].show
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# def updateArticleResult
|
||||
# @article = OrderArticleResult.find(params[:id])
|
||||
# @article.attributes=(params[:order_article_result]) # update attributes but doesn't save
|
||||
# @article.make_gross
|
||||
# @order = @article.order
|
||||
# @ordered_articles = @order.order_article_results
|
||||
# @group_orders = @order.group_order_results
|
||||
# render :update do |page|
|
||||
# if @article.save
|
||||
# page["edit_box"].hide
|
||||
# page["summary"].replace_html :partial => 'summary'
|
||||
# page["summary"].visual_effect :highlight, :duration => 2
|
||||
# page["order_article_result_#{@article.id}"].replace_html :partial => 'articleResult'
|
||||
# page['order_article_result_'+@article.id.to_s].visual_effect :highlight, :delay => 0.5, :duration => 2
|
||||
# page["group_order_article_results_#{@article.id}"].replace_html :partial => "groupOrderArticleResults"
|
||||
# else
|
||||
# page['edit_box'].replace_html :partial => 'editArticleResult'
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
def new_order_article
|
||||
@order = Order.find(params[:id])
|
||||
render :update do |page|
|
||||
page["edit_box"].replace_html :partial => "new_order_article"
|
||||
page["edit_box"].show
|
||||
end
|
||||
end
|
||||
|
||||
def auto_complete_for_article_name
|
||||
order = Order.find(params[:order_id])
|
||||
type = order.stockit? ? "type = 'StockArticle'" : "type IS NULL"
|
||||
@articles = Article.find(:all,
|
||||
:conditions => [ "supplier_id = ? AND #{type} AND LOWER(name) LIKE ?",
|
||||
order.supplier_id,
|
||||
'%' + params[:article][:name].downcase + '%' ],
|
||||
:order => 'name ASC',
|
||||
:limit => 8)
|
||||
render :partial => 'shared/auto_complete_articles'
|
||||
|
||||
end
|
||||
|
||||
def create_order_article
|
||||
@order = Order.find(params[:order_id])
|
||||
order_article = @order.order_articles.find_by_article_id(params[:order_article][:article_id])
|
||||
|
||||
unless order_article
|
||||
# Article wasn't already assigned with this order, lets create a new one
|
||||
order_article = @order.order_articles.build(params[:order_article])
|
||||
order_article.article_price = order_article.article.article_prices.first
|
||||
end
|
||||
# Set units to order to 1, so the article is visible on page
|
||||
order_article.units_to_order = 1
|
||||
|
||||
render :update do |page|
|
||||
if order_article.save
|
||||
page["edit_box"].hide
|
||||
page.insert_html :top, "result_table", :partial => "order_article_result", :locals => {:order_article => order_article}
|
||||
page["order_article_#{order_article.id}"].visual_effect :highlight, :duration => 2
|
||||
page["group_order_articles_#{order_article.id}"].show
|
||||
else
|
||||
page["edit_box"].replace_html :partial => "new_order_article"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def edit_order_article
|
||||
@order_article = OrderArticle.find(params[:id])
|
||||
render :update do |page|
|
||||
page["edit_box"].replace_html :partial => 'edit_order_article'
|
||||
page["edit_box"].show
|
||||
end
|
||||
end
|
||||
|
||||
# Update this article and creates a new articleprice if neccessary
|
||||
def update_order_article
|
||||
@order_article = OrderArticle.find(params[:id])
|
||||
begin
|
||||
@order_article.update_article_and_price!(params[:article], params[:price], params[:order_article])
|
||||
render :update do |page|
|
||||
page["edit_box"].hide
|
||||
page["summary"].replace_html :partial => 'summary', :locals => {:order => @order_article.order}
|
||||
page["summary"].visual_effect :highlight, :duration => 2
|
||||
page["order_article_#{@order_article.id}"].replace_html :partial => 'order_article', :locals => {:order_article => @order_article}
|
||||
page["order_article_#{@order_article.id}"].visual_effect :highlight, :delay => 0.5, :duration => 2
|
||||
page["group_order_articles_#{@order_article.id}"].replace_html :partial => "group_order_articles", :locals => {:order_article => @order_article}
|
||||
end
|
||||
rescue => @error
|
||||
render :update do |page|
|
||||
page['edit_box'].replace_html :partial => 'edit_order_article'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def destroy_order_article
|
||||
order_article = OrderArticle.find(params[:id])
|
||||
order_article.destroy
|
||||
@order = order_article.order
|
||||
render :update do |page|
|
||||
page["order_article_#{order_article.id}"].remove
|
||||
page["group_order_articles_#{order_article.id}"].remove
|
||||
page["summary"].replace_html :partial => 'summary', :locals => {:order => @order}
|
||||
page["summary"].replace_html :partial => 'summary', :locals => {:order => order_article.order}
|
||||
page["summary"].visual_effect :highlight, :duration => 2
|
||||
end
|
||||
end
|
||||
|
|
@ -139,6 +155,7 @@ class Finance::BalancingController < ApplicationController
|
|||
goa.group_order.update_price! # Update the price attribute of new GroupOrder
|
||||
order_article.update_results! if order_article.article.is_a?(StockArticle) # Update units_to_order of order_article
|
||||
page["edit_box"].hide
|
||||
page["order_article_#{order_article.id}"].replace_html :partial => 'order_article', :locals => {:order_article => order_article}
|
||||
|
||||
page["group_order_articles_#{order_article.id}"].replace_html :partial => 'group_order_articles',
|
||||
:locals => {:order_article => order_article}
|
||||
|
|
@ -168,6 +185,7 @@ class Finance::BalancingController < ApplicationController
|
|||
goa.order_article.update_results! if goa.order_article.article.is_a?(StockArticle) # Update units_to_order of order_article
|
||||
|
||||
page["edit_box"].hide
|
||||
page["order_article_#{goa.order_article.id}"].replace_html :partial => 'order_article', :locals => {:order_article => goa.order_article}
|
||||
page["group_order_articles_#{goa.order_article.id}"].replace_html :partial => 'group_order_articles',
|
||||
:locals => {:order_article => goa.order_article}
|
||||
page["summary"].replace_html :partial => 'summary', :locals => {:order => goa.order_article.order}
|
||||
|
|
@ -186,6 +204,7 @@ class Finance::BalancingController < ApplicationController
|
|||
|
||||
render :update do |page|
|
||||
page["edit_box"].hide
|
||||
page["order_article_#{goa.order_article.id}"].replace_html :partial => 'order_article', :locals => {:order_article => goa.order_article}
|
||||
page["group_order_articles_#{goa.order_article.id}"].replace_html :partial => 'group_order_articles',
|
||||
:locals => {:order_article => goa.order_article}
|
||||
page["summary"].replace_html :partial => 'summary', :locals => {:order => goa.order_article.order}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue