6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'app/services/spree/cart/recalculate.rb', line 6
def call(order:, line_item:, line_item_created: false, options: {})
order_updater = ::Spree::OrderUpdater.new(order)
order.payments.store_credits.checkout.destroy_all
order_updater.update
shipment = options[:shipment]
if shipment.present?
order.refresh_shipment_rates(::Spree::ShippingMethod::DISPLAY_ON_BACK_END)
shipment.update_amounts
else
order.ensure_updated_shipments
end
::Spree::PromotionHandler::Cart.new(order, line_item).activate
::Spree::Adjustable::AdjustmentsUpdater.update(line_item)
::Spree::TaxRate.adjust(order, [line_item.reload]) if line_item_created
order_updater.update
success(line_item)
end
|