Skip to content

Commit

Permalink
Fix parcel->trade conversion price detection
Browse files Browse the repository at this point in the history
  • Loading branch information
Brice Texier committed Aug 14, 2018
1 parent 55d4b45 commit f4b6457
Showing 1 changed file with 8 additions and 14 deletions.
22 changes: 8 additions & 14 deletions app/models/parcel.rb
Expand Up @@ -458,12 +458,12 @@ def convert_to_sale(parcels)

# Adds items
parcels.each do |parcel|
parcel.items.each do |item|
parcel.items.order(:id).each do |item|
# raise "#{item.variant.name} cannot be sold" unless item.variant.saleable?
next unless item.variant.saleable? && item.population && item.population > 0
catalog_item = Catalog.by_default!(:sale).items.find_by(variant: item.variant)
# check all taxes included to build unit_pretax_amount and tax from catalog with all taxes included
unit_pretax_amount = item.pretax_amount
unit_pretax_amount = item.pretax_amount.zero? ? nil : item.pretax_amount
tax = Tax.current.first
if catalog_item && catalog_item.all_taxes_included
unit_pretax_amount ||= catalog_item.reference_tax.pretax_amount_of(catalog_item.amount)
Expand All @@ -474,14 +474,11 @@ def convert_to_sale(parcels)
# from last sale item
elsif (last_sale_items = SaleItem.where(variant: item.variant)) && last_sale_items.any?
unit_pretax_amount ||= last_sale_items.order(id: :desc).first.unit_pretax_amount
tax = last_sale_items.order(id: :desc).first.tax_id
# from nothing
else
unit_pretax_amount ||= 0.0
tax = last_sale_items.order(id: :desc).first.tax
end
item.sale_item = sale.items.create!(
variant: item.variant,
unit_pretax_amount: unit_pretax_amount,
unit_pretax_amount: unit_pretax_amount || 0.0,
tax: tax,
quantity: item.population
)
Expand Down Expand Up @@ -530,10 +527,10 @@ def convert_to_purchase(parcels)

# Adds items
parcels.each do |parcel|
parcel.items.each do |item|
parcel.items.order(:id).each do |item|
next unless item.variant.purchasable? && item.population && item.population > 0
catalog_item = Catalog.by_default!(:purchase).items.find_by(variant: item.variant)
unit_pretax_amount = item.pretax_amount
unit_pretax_amount = item.pretax_amount.zero? ? nil : item.pretax_amount
tax = Tax.current.first
# check all taxes included to build unit_pretax_amount and tax from catalog with all taxes included
if catalog_item && catalog_item.all_taxes_included
Expand All @@ -545,14 +542,11 @@ def convert_to_purchase(parcels)
# from last purchase item
elsif (last_purchase_items = PurchaseItem.where(variant: item.variant)) && last_purchase_items.any?
unit_pretax_amount ||= last_purchase_items.order(id: :desc).first.unit_pretax_amount
tax = last_purchase_items.order(id: :desc).first.tax_id
# from nothing
else
unit_pretax_amount ||= 0.0
tax = last_purchase_items.order(id: :desc).first.tax
end
item.purchase_item = purchase.items.create!(
variant: item.variant,
unit_pretax_amount: unit_pretax_amount,
unit_pretax_amount: unit_pretax_amount || 0.0,
tax: tax,
quantity: item.population
)
Expand Down

0 comments on commit f4b6457

Please sign in to comment.