Remove references to Adjustment source

This commit is contained in:
Matt-Yorkley
2021-03-19 16:56:09 +00:00
parent 6474323282
commit b6038c01a3
15 changed files with 38 additions and 44 deletions

View File

@@ -12,10 +12,10 @@ module CheckoutHelper
adjustments.reject! { |a| a.originator_type == 'Spree::TaxRate' && a.amount == 0 }
adjustments.reject! { |a| a.originator_type == 'Spree::ShippingMethod' } if exclude.include? :shipping
adjustments.reject! { |a| a.originator_type == 'Spree::PaymentMethod' } if exclude.include? :payment
adjustments.reject! { |a| a.source_type == 'Spree::LineItem' } if exclude.include? :line_item
adjustments.reject! { |a| a.adjustable_type == 'Spree::LineItem' } if exclude.include? :line_item
enterprise_fee_adjustments = adjustments.select { |a| a.originator_type == 'EnterpriseFee' && a.source_type != 'Spree::LineItem' }
adjustments.reject! { |a| a.originator_type == 'EnterpriseFee' && a.source_type != 'Spree::LineItem' }
enterprise_fee_adjustments = adjustments.select { |a| a.originator_type == 'EnterpriseFee' && a.adjustable_type != 'Spree::LineItem' }
adjustments.reject! { |a| a.originator_type == 'EnterpriseFee' && a.adjustable_type != 'Spree::LineItem' }
unless exclude.include? :admin_and_handling
adjustments << Spree::Adjustment.new(
label: I18n.t(:orders_form_admin), amount: enterprise_fee_adjustments.sum(&:amount)

View File

@@ -72,7 +72,7 @@ module Spree
scope :additional, -> { where(included: false) }
scope :enterprise_fee, -> { where(originator_type: 'EnterpriseFee') }
scope :admin, -> { where(source_type: nil, originator_type: nil) }
scope :admin, -> { where(originator_type: nil) }
scope :with_tax, -> { where('spree_adjustments.included_tax <> 0') }
scope :without_tax, -> { where('spree_adjustments.included_tax = 0') }

View File

@@ -69,7 +69,6 @@ module Spree
order.adjustments.create(
amount: amount,
source: order,
originator: self,
order: order,
state: "closed",

View File

@@ -1,7 +1,6 @@
module Api
class AdjustmentSerializer < ActiveModel::Serializer
attributes :id, :amount, :label, :eligible,
:source_type, :source_id,
:adjustable_type, :adjustable_id,
:originator_type, :originator_id
end

View File

@@ -63,11 +63,11 @@ class OrderAdjustmentsFetcher
adjustments.select do |adjustment|
match_by_scope(adjustment, eligible_scope) &&
adjustment.originator_type == 'EnterpriseFee' &&
adjustment.source_type != 'Spree::LineItem'
adjustment.adjustable_type != 'Spree::LineItem'
end
else
adjustments.eligible.
where("originator_type = ? AND source_type != ?", 'EnterpriseFee', 'Spree::LineItem')
where("originator_type = ? AND adjustable_type != ?", 'EnterpriseFee', 'Spree::LineItem')
end
end

View File

@@ -48,7 +48,7 @@ class OrderFeesHandler
end
def update_order_fees!
order.adjustments.enterprise_fee.where(source_type: 'Spree::Order').each do |fee|
order.adjustments.enterprise_fee.where(adjustable_type: 'Spree::Order').each do |fee|
fee.update!(order, force: true)
end
end

View File

@@ -52,6 +52,6 @@ class OrderTaxAdjustmentsFetcher
# Enterprise Fees and Admin Adjustments currently do not have tax adjustments.
# The tax amount is stored in the included_tax attribute.
adjustment.originator_type == "EnterpriseFee" ||
(adjustment.source_type.nil? && adjustment.originator_type.nil?)
adjustment.originator_type.nil?
end
end

View File

@@ -6,36 +6,36 @@ class TaxRateFinder
def self.tax_rates_of(adjustment)
new.tax_rates(
adjustment.originator,
adjustment.source,
adjustment.adjustable,
adjustment.amount,
adjustment.included_tax
)
end
# @return [Array<Spree::TaxRate>]
def tax_rates(originator, source, amount, included_tax)
find_associated_tax_rate(originator, source) ||
def tax_rates(originator, adjustable, amount, included_tax)
find_associated_tax_rate(originator, adjustable) ||
find_closest_tax_rates_from_included_tax(amount, included_tax)
end
private
def find_associated_tax_rate(originator, source)
def find_associated_tax_rate(originator, adjustable)
case originator
when Spree::TaxRate
[originator]
when EnterpriseFee
enterprise_fee_tax_rates(originator, source)
enterprise_fee_tax_rates(originator, adjustable)
end
end
def enterprise_fee_tax_rates(enterprise_fee, source)
case source
def enterprise_fee_tax_rates(enterprise_fee, adjustable)
case adjustable
when Spree::LineItem
tax_category = line_item_tax_category(enterprise_fee, source)
tax_category ? tax_category.tax_rates.match(source.order) : []
tax_category = line_item_tax_category(enterprise_fee, adjustable)
tax_category ? tax_category.tax_rates.match(adjustable.order) : []
when Spree::Order
enterprise_fee.tax_category ? enterprise_fee.tax_category.tax_rates.match(source) : []
enterprise_fee.tax_category ? enterprise_fee.tax_category.tax_rates.match(adjustable) : []
end
end

View File

@@ -181,8 +181,8 @@ module OrderManagement
<<-JOIN_STRING.strip_heredoc
LEFT OUTER JOIN spree_orders AS adjustment_source_orders
ON (
spree_adjustments.source_type = 'Spree::Order'
AND adjustment_source_orders.id = spree_adjustments.source_id
spree_adjustments.adjustable_type = 'Spree::Order'
AND adjustment_source_orders.id = spree_adjustments.adjustable_id
)
JOIN_STRING
)
@@ -207,8 +207,8 @@ module OrderManagement
<<-JOIN_STRING.strip_heredoc
LEFT OUTER JOIN spree_line_items
ON (
spree_adjustments.source_type = 'Spree::LineItem'
AND spree_line_items.id = spree_adjustments.source_id
spree_adjustments.adjustable_type = 'Spree::LineItem'
AND spree_line_items.id = spree_adjustments.adjustable_id
)
JOIN_STRING
)
@@ -217,7 +217,7 @@ module OrderManagement
<<-JOIN_STRING.strip_heredoc
LEFT OUTER JOIN spree_variants
ON (
spree_adjustments.source_type = 'Spree::LineItem'
spree_adjustments.adjustable_type = 'Spree::LineItem'
AND spree_variants.id = spree_line_items.variant_id
)
JOIN_STRING
@@ -260,7 +260,7 @@ module OrderManagement
)
)
ON (
spree_adjustments.source_type = 'Spree::LineItem'
spree_adjustments.adjustable_type = 'Spree::LineItem'
AND adjustment_metadata.enterprise_role = 'supplier'
AND incoming_exchanges.order_cycle_id = spree_orders.order_cycle_id
AND incoming_exchange_variants.id IS NOT NULL
@@ -296,7 +296,7 @@ module OrderManagement
)
)
ON (
spree_adjustments.source_type = 'Spree::LineItem'
spree_adjustments.adjustable_type = 'Spree::LineItem'
AND adjustment_metadata.enterprise_role = 'distributor'
AND outgoing_exchanges.order_cycle_id = spree_orders.order_cycle_id
AND outgoing_exchange_variants.id IS NOT NULL
@@ -353,7 +353,7 @@ module OrderManagement
"adjustment_metadata.enterprise_role",
"spree_tax_categories.id",
"product_tax_categories.id",
"spree_adjustments.source_type",
"spree_adjustments.adjustable_type",
"adjustment_source_distributors.id",
"incoming_exchange_enterprises.id",
"outgoing_exchange_enterprises.id"
@@ -378,7 +378,7 @@ module OrderManagement
enterprise_fees.inherits_tax_category AS enterprise_fee_inherits_tax_category,
product_tax_categories.name AS product_tax_category_name,
adjustment_metadata.enterprise_role AS placement_enterprise_role,
spree_adjustments.source_type AS adjustment_source_type,
spree_adjustments.adjustable_type AS adjustment_adjustable_type,
adjustment_source_distributors.name AS adjustment_source_distributor_name,
incoming_exchange_enterprises.name AS incoming_exchange_enterprise_name,
outgoing_exchange_enterprises.name AS outgoing_exchange_enterprise_name

View File

@@ -65,11 +65,11 @@ module OrderManagement
end
def for_order_adjustment_source?
data["adjustment_source_type"] == "Spree::Order"
data["adjustment_adjustable_type"] == "Spree::Order"
end
def for_line_item_adjustment_source?
data["adjustment_source_type"] == "Spree::LineItem"
data["adjustment_adjustable_type"] == "Spree::LineItem"
end
end
end

View File

@@ -69,17 +69,17 @@ class TruncateData
end
def truncate_adjustments
sql_delete_from "spree_adjustments where source_type = 'Spree::Order'
and source_id in (select id from spree_orders #{where_oc_id_in_ocs_to_delete})"
sql_delete_from "spree_adjustments where adjustable_type = 'Spree::Order'
and adjustable_id in (select id from spree_orders #{where_oc_id_in_ocs_to_delete})"
sql_delete_from "spree_adjustments where source_type = 'Spree::Shipment'
and source_id in (select id from spree_shipments #{where_order_id_in_orders_to_delete})"
sql_delete_from "spree_adjustments where adjustable_type = 'Spree::Shipment'
and adjustable_id in (select id from spree_shipments #{where_order_id_in_orders_to_delete})"
sql_delete_from "spree_adjustments where source_type = 'Spree::Payment'
and source_id in (select id from spree_payments #{where_order_id_in_orders_to_delete})"
sql_delete_from "spree_adjustments where adjustable_type = 'Spree::Payment'
and adjustable_id in (select id from spree_payments #{where_order_id_in_orders_to_delete})"
sql_delete_from "spree_adjustments where source_type = 'Spree::LineItem'
and source_id in (select id from spree_line_items #{where_order_id_in_orders_to_delete})"
sql_delete_from "spree_adjustments where adjustable_type = 'Spree::LineItem'
and adjustable_id in (select id from spree_line_items #{where_order_id_in_orders_to_delete})"
end
def truncate_order_cycle_data

View File

@@ -17,7 +17,6 @@ module OpenFoodNetwork
adjustment = Spree::Adjustment.last
expect(adjustment.label).to eq('label')
expect(adjustment.adjustable).to eq(line_item)
expect(adjustment.source).to eq(line_item)
expect(adjustment.originator).to eq(enterprise_fee)
expect(adjustment).to be_mandatory
@@ -40,7 +39,6 @@ module OpenFoodNetwork
adjustment = Spree::Adjustment.last
expect(adjustment.label).to eq('label')
expect(adjustment.adjustable).to eq(order)
expect(adjustment.source).to eq(order)
expect(adjustment.originator).to eq(enterprise_fee)
expect(adjustment).to be_mandatory

View File

@@ -37,7 +37,7 @@ describe Spree::Core::CalculatedAdjustments do
adjustment = tax_rate.create_adjustment("foo", target, order)
expect(adjustment).not_to be_nil
expect(adjustment.amount).to eq 10
expect(adjustment.source).to eq order
expect(adjustment.adjustable).to eq order
expect(adjustment.originator).to eq tax_rate
end

View File

@@ -79,7 +79,6 @@ describe MigrateShippingTaxes do
expect(shipping_tax_adjustment.amount).to eq 0.23
expect(shipping_tax_adjustment.originator).to eq shipping_tax_rate
expect(shipping_tax_adjustment.source).to eq shipment
expect(shipping_tax_adjustment.adjustable).to eq shipment
expect(shipping_tax_adjustment.order_id).to eq order.id
expect(shipping_tax_adjustment.included).to eq true

View File

@@ -772,7 +772,6 @@ describe Spree::Order do
line_item = order.line_items.where(variant_id: v1.id).first
adjustment_scope = Spree::Adjustment.where(adjustable_type: "Spree::LineItem",
adjustable_id: line_item.id)
expect(adjustment_scope.count).to eq(1)
adjustment = adjustment_scope.first
order.remove_variant v1