class Nfe::Models::Taxes::IPI

Attributes

cst[RW]
pIPI[RW]
qUnid[RW]
vBC[RW]
vIPI[RW]
vUnid[RW]

Public Instance Methods

cEnq() click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 34
def cEnq
  "999"
end
parse!(xml) click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 43
def parse!(xml)
  doc = Nokogiri::XML(xml)

  parse_elements doc
  reset_values
  parse_when_IPITrib doc
  parse_when_IPINT doc
end
present?() click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 38
def present?
  check_present || @cst.present? || @vBC.present? || @pIPI.present? ||
    @qUnid.present? || @vUnid.present? || @vIPI.present?
end
to_xml() click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 52
def to_xml
  xml = Builder::XmlMarkup.new

  add_elements xml, :clEnq, :cnpjProd, :cSelo, :qSelo

  xml.cEnq cEnq

  to_xml_when_IPITrib xml
  to_xml_when_IPINT xml

  xml.target!
end

Private Instance Methods

IPINT?() click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 70
def IPINT?
  ["01", "02", "03", "04", "05", "51", "52", "53", "54", "55"].include? @cst
end
IPITrib?() click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 66
def IPITrib?
  ["00", "49", "50", "99"].include? @cst
end
parse_when_IPINT(doc) click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 97
def parse_when_IPINT(doc)
  if doc.css("IPINT").present?
    ipi = IPINT.new
    ipi.parse!(doc.css("IPINT").to_xml)

    @cst = ipi.cst
  end
end
parse_when_IPITrib(doc) click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 83
def parse_when_IPITrib(doc)
  if doc.css("IPITrib").present?
    ipi = IPITrib.new
    ipi.parse!(doc.css("IPITrib").to_xml)

    @cst = ipi.cst
    @vBC = ipi.vBC
    @pIPI = ipi.pIPI
    @qUnid = ipi.qUnid
    @vUnid = ipi.vUnid
    @vIPI = ipi.vIPI
  end
end
reset_values() click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 74
def reset_values
  @cst = nil
  @vBC = nil
  @pIPI = nil
  @qUnid = nil
  @vUnid = nil
  @vIPI = nil
end
to_xml_when_IPINT(xml) click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 121
def to_xml_when_IPINT(xml)
  if IPINT?
    ipi = IPINT.new

    ipi.cst = @cst

    xml.IPINT { |node| node << ipi.to_xml }
  end
end
to_xml_when_IPITrib(xml) click to toggle source
# File lib/nfe/models/taxes/IPI.rb, line 106
def to_xml_when_IPITrib(xml)
  if IPITrib?
    ipi = IPITrib.new

    ipi.cst = @cst
    ipi.vBC = @vBC
    ipi.pIPI = @pIPI
    ipi.qUnid = @qUnid
    ipi.vUnid = @vUnid
    ipi.vIPI = @vIPI

    xml.IPITrib { |node| node << ipi.to_xml }
  end
end