class Nfe::Models::Taxes::PISCOFINSST

Attributes

qBCProd[RW]
tax[RW]
vAliqProd[RW]
vBC[RW]
value[RW]

Public Class Methods

new(xml_tax, xml_value) click to toggle source
# File lib/nfe/models/taxes/PISCOFINSST.rb, line 44
def initialize(xml_tax, xml_value)
  @xml_tax = xml_tax
  @xml_value = xml_value
end

Public Instance Methods

parse!(xml) click to toggle source
# File lib/nfe/models/taxes/PISCOFINSST.rb, line 54
def parse!(xml)
  doc = Nokogiri::XML(xml)

  @vBC = doc.css("vBC").present? ? doc.css("vBC").text.to_f : nil
  @tax = doc.css(@xml_tax).present? ? doc.css(@xml_tax).text.to_f : nil
  @qBCProd = doc.css("qBCProd").present? ? doc.css("qBCProd").text.to_f : nil
  @vAliqProd = doc.css("vAliqProd").present? ? doc.css("vAliqProd").text.to_f : nil
  @value = doc.css(@xml_value).text.to_f
end
present?() click to toggle source
# File lib/nfe/models/taxes/PISCOFINSST.rb, line 49
def present?
  @vBC.present? || @tax.present? || @qBCProd.present? ||
    @vAliqProd.present? || @value.present?
end
to_xml() click to toggle source
# File lib/nfe/models/taxes/PISCOFINSST.rb, line 64
def to_xml
  xml = Builder::XmlMarkup.new

  xml.vBC "%0.2f" % @vBC if @vBC.present?
  xml.tag!(@xml_tax) { |node| node << "%0.2f" % @tax } if @tax.present?
  xml.qBCProd "%0.4f" % @qBCProd if @qBCProd.present?
  xml.vAliqProd "%0.4f" % @vAliqProd if @vAliqProd.present?
  xml.tag!(@xml_value) { |node| node << "%0.2f" % @value }

  xml.target!
end