Sha256: d2a517ad3d6f3e2bd68412d47159a5d9ea453bcf85b2d838dc88c8d39b483850

Contents?: true

Size: 1002 Bytes

Versions: 3

Compression:

Stored size: 1002 Bytes

Contents

#encoding: utf-8

module RubyDanfe
  class Descricao
    LINEBREAK = "\n"

    def self.generate(det)
      descricao = "#{det.css('prod/xProd').text}"

      if need_infAdProd(det)
        descricao += LINEBREAK
        descricao += det.css('infAdProd').text
      end

      if need_fci(det)
        descricao += LINEBREAK
        descricao += "FCI: #{det.css('prod/nFCI').text}"
      end

      if need_st(det)
        descricao += LINEBREAK
        descricao += "ST: MVA: #{det.css('ICMS/*/pMVAST').text}% "
        descricao += "* Alíq: #{det.css('ICMS/*/pICMSST').text}% "
        descricao += "* BC: #{det.css('ICMS/*/vBCST').text} "
        descricao += "* Vlr: #{det.css('ICMS/*/vICMSST').text}"
      end

      descricao
    end

    private
    def self.need_infAdProd(det)
      !det.css('infAdProd').text.empty?
    end

    def self.need_fci(det)
      !det.css('prod/nFCI').text.empty?
    end

    def self.need_st(det)
      det.css('ICMS/*/vBCST').text.to_i > 0
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby_danfe-1.15.2 lib/ruby_danfe/descricao.rb
ruby_danfe-1.15.1 lib/ruby_danfe/descricao.rb
ruby_danfe-1.15.0 lib/ruby_danfe/descricao.rb