Allow synchronising units when uploading
This commit is contained in:
parent
4d1e102f47
commit
c30ec67548
6 changed files with 37 additions and 11 deletions
|
|
@ -116,11 +116,16 @@ class Article < ActiveRecord::Base
|
|||
end
|
||||
|
||||
# Return article attributes that were changed (incl. unit conversion)
|
||||
# @param [Article] New article to update self
|
||||
# @param new_article [Article] New article to update self
|
||||
# @option options [Boolean] :convert_units Omit or set to +true+ to keep current unit and recompute unit quantity and price.
|
||||
# @return [Hash<Symbol, Object>] Attributes with new values
|
||||
def unequal_attributes(new_article)
|
||||
# try to convert different units
|
||||
new_price, new_unit_quantity = convert_units(new_article)
|
||||
def unequal_attributes(new_article, options={})
|
||||
# try to convert different units when desired
|
||||
if options[:convert_units] == false
|
||||
new_price, new_unit_quantity = nil, nil
|
||||
else
|
||||
new_price, new_unit_quantity = convert_units(new_article)
|
||||
end
|
||||
if new_price && new_unit_quantity
|
||||
new_unit = self.unit
|
||||
else
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ class Supplier < ActiveRecord::Base
|
|||
# @param file [File] Spreadsheet file to parse
|
||||
# @param options [Hash] Options passed to {FoodsoftFile#parse} except when listed here.
|
||||
# @option options [Boolean] :outlist_absent Set to +true+ to remove articles not in spreadsheet.
|
||||
# @option options [Boolean] :convert_units Omit or set to +true+ to keep current units, recomputing unit quantity and price.
|
||||
def sync_from_file(file, options={})
|
||||
all_order_numbers = []
|
||||
updated_article_pairs, outlisted_articles, new_articles = [], [], []
|
||||
|
|
@ -73,7 +74,7 @@ class Supplier < ActiveRecord::Base
|
|||
if article.nil?
|
||||
new_articles << new_article
|
||||
else
|
||||
unequal_attributes = article.unequal_attributes(new_article)
|
||||
unequal_attributes = article.unequal_attributes(new_article, options.slice(:convert_units))
|
||||
unless unequal_attributes.empty?
|
||||
article.attributes = unequal_attributes
|
||||
updated_article_pairs << [article, unequal_attributes]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue