Sha256: 8d256df24dd4c05c06bc549ca9f42196bb4b6f59e8b92c2afea14b382e3a4d7e

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

module BrDanfe
  class Helper
    def self.no_fiscal_value?(xml)
      homologation?(xml) || unauthorized?(xml)
    end

    def self.homologation?(xml)
      xml.css('nfeProc/NFe/infNFe/ide/tpAmb').text == '2'
    end

    def self.unauthorized?(xml)
      xml.css('nfeProc/protNFe/infProt/dhRecbto').empty?
    end

    def self.numerify(number)
      return '' if !number || number == ''

      separated_number = number.to_s.split('.')
      integer_part = separated_number[0].reverse.gsub(/\d{3}(?=\d)/, '\&.').reverse
      decimal_part = separated_number[1] || '00'
      decimal_part += '0' if decimal_part.size < 2

      integer_part + ',' + decimal_part
    end

    def self.format_datetime(xml_datetime, with_time_zone: false)
      formated = with_time_zone ? '%d/%m/%Y %H:%M:%S%:z' : '%d/%m/%Y %H:%M:%S'
      xml_datetime.present? ? Time.parse(xml_datetime).strftime(formated) : ''
    end

    def self.nfe?(xml)
      nfe_code = '55'

      xml['ide > mod'] == nfe_code
    end

    def self.format_cep(cep)
      cep.sub(/(\d{2})(\d{3})(\d{3})/, '\\1.\\2-\\3')
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
br_danfe-0.17.0 lib/br_danfe/helper.rb
br_danfe-0.16.0 lib/br_danfe/helper.rb