mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-13 23:37:47 +00:00
Remove references to Adjustment source
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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') }
|
||||
|
||||
@@ -69,7 +69,6 @@ module Spree
|
||||
|
||||
order.adjustments.create(
|
||||
amount: amount,
|
||||
source: order,
|
||||
originator: self,
|
||||
order: order,
|
||||
state: "closed",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user