Sha256: 39e3deb058f284a80712adfd1af2633bbe7a26c6b673e88c03cef1904da82a51

Contents?: true

Size: 1007 Bytes

Versions: 4

Compression:

Stored size: 1007 Bytes

Contents

module BrDanfe
  class Xprod
    def initialize(det)
      @det = det
    end

    def render
      xprod = "#{@det.css('prod/xProd').text}"

      xprod += infAdProd if has_infAdProd?
      xprod += fci if has_fci?
      xprod += st if has_st?

      xprod
    end

    private
    def has_infAdProd?
      !@det.css("infAdProd").text.empty?
    end

    def has_fci?
      !@det.css("prod/nFCI").text.empty?
    end

    def has_st?
      @det.css("ICMS/*/vBCST").text.to_i > 0
    end

    def infAdProd
      "\n" + @det.css("infAdProd").text
    end

    def fci
      "\n" + I18n.t("danfe.det.prod.xProdFCI", nFCI: @det.css('prod/nFCI').text)
    end

    def st
      "\n" + I18n.t("danfe.det.prod.xProdST",
        pMVAST: Helper.numerify(@det.css('ICMS/*/pMVAST').text, 2),
        pICMSST: Helper.numerify(@det.css('ICMS/*/pICMSST').text, 2),
        vBCST: Helper.numerify(@det.css('ICMS/*/vBCST').text, 2),
        vICMSST: Helper.numerify(@det.css('ICMS/*/vICMSST').text, 2))
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
br_danfe-0.0.9 lib/br_danfe/xprod.rb
br_danfe-0.0.8 lib/br_danfe/xprod.rb
br_danfe-0.0.7 lib/br_danfe/xprod.rb
br_danfe-0.0.6 lib/br_danfe/xprod.rb