module BrInvoicesPdf::Nfce::Parser::Payments
Public Instance Methods
cashback_for(xml)
click to toggle source
# File lib/br_invoices_pdf/nfce/parser/payments.rb, line 33 def cashback_for(xml) locate_element(xml.locate("#{root_path(xml)}/pag")[0], 'vTroco') end
execute(xml)
click to toggle source
# File lib/br_invoices_pdf/nfce/parser/payments.rb, line 11 def execute(xml) xml_version = xml.locate(root_path(xml).to_s) return payments_new_version(xml) if xml_version.any? && xml_version[0].attributes[:versao][0] == '4' payments_old_version(xml) end
payment_by(element, cashback: nil)
click to toggle source
# File lib/br_invoices_pdf/nfce/parser/payments.rb, line 37 def payment_by(element, cashback: nil) payment = locate_element(element, 'tPag') cashback_amount = cashback if payment == '01' { type: Util::Enum::PAYMENT_TYPES[payment], amount: locate_element(element, 'vPag'), cashback: cashback_amount || locate_element(element, 'vTroco') } end
payments_new_version(xml)
click to toggle source
# File lib/br_invoices_pdf/nfce/parser/payments.rb, line 24 def payments_new_version(xml) node_payments = xml.locate("#{root_path(xml)}/pag/detPag") cashback = cashback_for(xml) node_payments.map do |payment| payment_by(payment, cashback: cashback) end end
payments_old_version(xml)
click to toggle source
# File lib/br_invoices_pdf/nfce/parser/payments.rb, line 19 def payments_old_version(xml) node_payments = xml.locate("#{root_path(xml)}/pag") node_payments.map(&method(:payment_by)) end