Simplify arguments of #create_adjustment method

This commit is contained in:
Matt-Yorkley
2021-03-19 17:09:49 +00:00
parent ebce32c57b
commit e323d016a2
7 changed files with 23 additions and 25 deletions

View File

@@ -135,7 +135,7 @@ module Spree
adjustment.label = adjustment_label
adjustment.save
else
payment_method.create_adjustment(adjustment_label, self, self, true)
payment_method.create_adjustment(adjustment_label, self, true)
adjustment.reload
end
end

View File

@@ -276,7 +276,6 @@ module Spree
fee_adjustment.reload
elsif selected_shipping_rate_id
shipping_method.create_adjustment(adjustment_label,
self,
self,
true,
"open")

View File

@@ -61,8 +61,8 @@ module Spree
label = create_label
if included_in_price
if default_zone_or_zone_match? order
order.line_items.each { |line_item| create_adjustment(label, line_item, line_item, false, "open") }
order.shipments.each { |shipment| create_adjustment(label, shipment, shipment, false, "open") }
order.line_items.each { |line_item| create_adjustment(label, line_item, false, "open") }
order.shipments.each { |shipment| create_adjustment(label, shipment, false, "open") }
else
amount = -1 * calculator.compute(order)
label = Spree.t(:refund) + label
@@ -76,7 +76,7 @@ module Spree
)
end
else
create_adjustment(label, order, order, false, "open")
create_adjustment(label, order, false, "open")
end
order.adjustments.reload

View File

@@ -1,17 +1,17 @@
module OpenFoodNetwork
class EnterpriseFeeApplicator < Struct.new(:enterprise_fee, :variant, :role)
def create_line_item_adjustment(line_item)
create_adjustment(line_item_adjustment_label, line_item, line_item)
create_adjustment(line_item_adjustment_label, line_item)
end
def create_order_adjustment(order)
create_adjustment(order_adjustment_label, order, order)
create_adjustment(order_adjustment_label, order)
end
private
def create_adjustment(label, target, calculable)
adjustment = enterprise_fee.create_adjustment(label, target, calculable, true)
def create_adjustment(label, adjustable)
adjustment = enterprise_fee.create_adjustment(label, adjustable, true)
AdjustmentMetadata.create! adjustment: adjustment, enterprise: enterprise_fee.enterprise, fee_name: enterprise_fee.name, fee_type: enterprise_fee.fee_type, enterprise_role: role

View File

@@ -26,25 +26,24 @@ module Spree
# (which is any class that has_many :adjustments) and sets amount based on the
# calculator as applied to the given calculable (Order, LineItems[], Shipment, etc.)
# By default the adjustment will not be considered mandatory
def create_adjustment(label, target, calculable, mandatory = false, state = "closed")
amount = compute_amount(calculable)
def create_adjustment(label, adjustable, mandatory = false, state = "closed")
amount = compute_amount(adjustable)
return if amount.zero? && !mandatory
adjustment_attributes = {
amount: amount,
source: calculable,
originator: self,
order: order_object_for(target),
order: order_object_for(adjustable),
label: label,
mandatory: mandatory,
state: state,
included: tax_included?(self, target)
included: tax_included?(self, adjustable)
}
if target.respond_to?(:adjustments)
target.adjustments.create(adjustment_attributes)
if adjustable.respond_to?(:adjustments)
adjustable.adjustments.create(adjustment_attributes)
else
target.create_adjustment(adjustment_attributes)
adjustable.create_adjustment(adjustment_attributes)
end
end

View File

@@ -104,10 +104,10 @@ describe EnterpriseFee do
line_item1 = create(:line_item, order: order, variant: order_cycle.variants.first)
line_item2 = create(:line_item, order: order, variant: order_cycle.variants.second)
order_cycle.coordinator_fees[0].create_adjustment('foo1', line_item1.order, line_item1, true)
order_cycle.coordinator_fees[0].create_adjustment('foo2', line_item2.order, line_item2, true)
order_cycle.exchanges[0].enterprise_fees[0].create_adjustment('foo3', line_item1.order, line_item1, true)
order_cycle.exchanges[0].enterprise_fees[0].create_adjustment('foo4', line_item2.order, line_item2, true)
order_cycle.coordinator_fees[0].create_adjustment('foo1', line_item1, true)
order_cycle.coordinator_fees[0].create_adjustment('foo2', line_item2, true)
order_cycle.exchanges[0].enterprise_fees[0].create_adjustment('foo3', line_item1, true)
order_cycle.exchanges[0].enterprise_fees[0].create_adjustment('foo4', line_item2, true)
expect do
EnterpriseFee.clear_all_adjustments order

View File

@@ -539,7 +539,7 @@ describe Spree::Order do
it "returns the sum of eligible enterprise fee adjustments" do
ef = create(:enterprise_fee, calculator: Calculator::FlatRate.new )
ef.calculator.set_preference :amount, 123.45
a = ef.create_adjustment("adjustment", o, o, true)
a = ef.create_adjustment("adjustment", o, true)
expect(o.admin_and_handling_total).to eq(123.45)
end
@@ -547,7 +547,7 @@ describe Spree::Order do
it "does not include ineligible adjustments" do
ef = create(:enterprise_fee, calculator: Calculator::FlatRate.new )
ef.calculator.set_preference :amount, 123.45
a = ef.create_adjustment("adjustment", o, o, true)
a = ef.create_adjustment("adjustment", o, true)
a.update_column :eligible, false
@@ -557,7 +557,7 @@ describe Spree::Order do
it "does not include adjustments that do not originate from enterprise fees" do
sm = create(:shipping_method, calculator: Calculator::FlatRate.new )
sm.calculator.set_preference :amount, 123.45
sm.create_adjustment("adjustment", o, o, true)
sm.create_adjustment("adjustment", o, true)
expect(o.admin_and_handling_total).to eq(0)
end
@@ -565,7 +565,7 @@ describe Spree::Order do
it "does not include adjustments whose source is a line item" do
ef = create(:enterprise_fee, calculator: Calculator::PerItem.new )
ef.calculator.set_preference :amount, 123.45
ef.create_adjustment("adjustment", li.order, li, true)
ef.create_adjustment("adjustment", li, true)
expect(o.admin_and_handling_total).to eq(0)
end