class BrDanfe::Helper

Public Class Methods

format_cep(cep) click to toggle source
# File lib/br_danfe/helper.rb, line 37
def self.format_cep(cep)
  cep.sub(/(\d{2})(\d{3})(\d{3})/, '\\1.\\2-\\3')
end
format_datetime(xml_datetime, with_time_zone: false) click to toggle source
# File lib/br_danfe/helper.rb, line 26
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
homologation?(xml) click to toggle source
# File lib/br_danfe/helper.rb, line 7
def self.homologation?(xml)
  xml.css('nfeProc/NFe/infNFe/ide/tpAmb').text == '2'
end
nfe?(xml) click to toggle source
# File lib/br_danfe/helper.rb, line 31
def self.nfe?(xml)
  nfe_code = '55'

  xml['ide > mod'] == nfe_code
end
no_fiscal_value?(xml) click to toggle source
# File lib/br_danfe/helper.rb, line 3
def self.no_fiscal_value?(xml)
  homologation?(xml) || unauthorized?(xml)
end
numerify(number) click to toggle source
# File lib/br_danfe/helper.rb, line 15
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
unauthorized?(xml) click to toggle source
# File lib/br_danfe/helper.rb, line 11
def self.unauthorized?(xml)
  xml.css('nfeProc/protNFe/infProt/dhRecbto').empty?
end