class Sendregning::InvoiceSerializer

Public Instance Methods

build() click to toggle source
# File lib/sendregning/invoice_serializer.rb, line 5
def build
  builder.invoices do |invoices|
    invoices.invoice do |invoice|
      invoice.name item.name
      invoice.zip  item.zip
      invoice.city item.city

      lines(invoice)
      optional_attributes(invoice)
      shipment_attributes(invoice)
    end
  end
end

Protected Instance Methods

lines(invoice) click to toggle source
# File lib/sendregning/invoice_serializer.rb, line 21
def lines(invoice)
  if item.lines.any?
    invoice.lines do |line_builder|
      item.lines.each { |l| l.to_xml(builder: line_builder) }
    end
  end
end
optional_attributes(invoice) click to toggle source
# File lib/sendregning/invoice_serializer.rb, line 29
def optional_attributes(invoice)
  if item.optional.any?
    invoice.optional do |optional|
      item.optional.each do |key, value|
        key = key.to_sym
        if value.is_a?(Date) || value.is_a?(Time)
          value = value.strftime("%d.%m.%y")
        end
        optional.tag! key, value
      end
    end
  end
end
shipment_attributes(invoice) click to toggle source
# File lib/sendregning/invoice_serializer.rb, line 43
def shipment_attributes(invoice)
  if item.shipment.any?
    invoice.shipment do |shipment|
      shipment.text! item.shipment_mode
      item.shipment.each do |key, values|
        key = key.to_sym
        next if key == :shipment

        shipment.tag! key do |emails|
          Array(values).each { |v| emails.email v }
        end
      end
    end
  end
end