Sha256: 15b399886937223d7a502793a79b8803f2294e5f53b842fd69f0e9a2dbfd2c70

Contents?: true

Size: 916 Bytes

Versions: 2

Compression:

Stored size: 916 Bytes

Contents

# frozen_string_literal: true

module SolidusBrazilianAdaptations
  module Spree
    module OrderDecorator
      def self.prepended(base)
        base.class_eval do
          validate :verify, if: :email_required?
          before_update :format_tax_id

          def verify
            cnpj_allowed = SolidusBrazilianAdaptations.config.allow_cnpj
            document = TaxIdBr.new(tax_id)
            if document.valid?
              if document.document_type == :cnpj && cnpj_allowed == false
                errors.add(:base, "Insira um CPF, não um CNPJ.")
              end
            else
              errors.add(:base, "#{cnpj_allowed ? "CPF/CPNJ" : "CPF"} inválido.")
            end
          end

          def format_tax_id
            document = TaxIdBr.new(tax_id)
            self.tax_id = document.formatted
          end
        end
      end

      ::Spree::Order.prepend self
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
solidus_brazilian_adaptations-1.0.5 app/decorators/models/solidus_brazilian_adaptations/spree/order_decorator.rb
solidus_brazilian_adaptations-1.0.4 app/decorators/models/solidus_brazilian_adaptations/spree/order_decorator.rb