module BrInvoicesPdf::Cfe::Parser::Payments

Public Instance Methods

execute(xml) click to toggle source
# File lib/br_invoices_pdf/cfe/parser/payments.rb, line 11
def execute(xml)
  node_payments = xml.locate('infCFe/pgto')

  return unless node_payments

  payments_by_nodes(node_payments) if node_payments.any?
end
payment_by(element) click to toggle source
# File lib/br_invoices_pdf/cfe/parser/payments.rb, line 26
def payment_by(element)
  {
    type: Util::Enum::PAYMENT_TYPES[locate_element(element, 'cMP')],
    amount: locate_element(element, 'vMP')
  }
end
payments_by_nodes(node_payments) click to toggle source
# File lib/br_invoices_pdf/cfe/parser/payments.rb, line 19
def payments_by_nodes(node_payments)
  node_payments.first.nodes
               .select { |element| element.value == 'MP' }
               .map { |element| payment_by(element) }
end