Class: SpreeAvataxOfficial::CreateTaxAdjustmentsService
- Includes:
- TaxAdjustmentLabelHelper
- Defined in:
- app/services/spree_avatax_official/create_tax_adjustments_service.rb
Constant Summary
Constants included from TaxAdjustmentLabelHelper
TaxAdjustmentLabelHelper::PRECISION_OF_PERCENT_VALUE, TaxAdjustmentLabelHelper::STRIP_INSIGNIFICANT_ZEROS
Constants inherited from Base
Base::APP_NAME, Base::APP_VERSION, Base::CONNECTION_OPTIONS, Base::SUCCESS_STATUSES
Instance Method Summary collapse
-
#call(order:) ⇒ Object
rubocop:disable Metrics/AbcSize.
Methods included from TaxAdjustmentLabelHelper
#format_adjustment_label, #included_label, #tax_adjustment_label
Instance Method Details
#call(order:) ⇒ Object
rubocop:disable Metrics/AbcSize
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/spree_avatax_official/create_tax_adjustments_service.rb', line 5 def call(order:) # rubocop:disable Metrics/AbcSize return failure(::Spree.t('spree_avatax_official.create_tax_adjustments.order_canceled')) if order.canceled? order.all_adjustments.tax.destroy_all return failure(::Spree.t('spree_avatax_official.create_tax_adjustments.tax_calculation_unnecessary')) unless order.avatax_tax_calculation_required? transaction_cache_key = SpreeAvataxOfficial::GenerateTransactionCacheKeyService.call(order: order).value avatax_response = Rails.cache.fetch(transaction_cache_key, expires_in: 5.minutes) do send_transaction_to_avatax(order) end return failure((avatax_response.value)) if avatax_failed_response?(avatax_response) process_avatax_items(order, avatax_response.value['lines']) success(true) end |