# frozen_string_literal: true # Provides methods for remove order item to cart class Cart::RemoveItemService def call(order, orderable) item = order.order_items.find_by(orderable: orderable) raise ActiveRecord::RecordNotFound if item.nil? order.total -= (item.amount * item.quantity.to_i) unless item.is_offered ActiveRecord::Base.transaction do item.destroy! order.save end order.reload end end