class Fiscalizer::Serializers::Invoice

Private Instance Methods

add_body(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 22
def add_body(xml)
  xml['tns'].Racun do
    add_general_invoice_info(xml)
    add_invoice_number_info(xml)
    add_invoice_tax_info(xml)
    add_invoice_fee_info(xml)
    add_invoice_summary(xml)
    add_paragon_label(xml)
    add_specific_purpose(xml)
  end
end
add_general_invoice_info(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 34
def add_general_invoice_info(xml)
  xml['tns'].Oib object.pin
  xml['tns'].USustPdv object.in_vat_system
  xml['tns'].DatVrijeme object.time_issued_str
  xml['tns'].OznSlijed object.consistance_mark
end
add_invoice_fee_info(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 53
def add_invoice_fee_info(xml)
  return if object.fees.empty?

  xml['tns'].Naknade do
    object.fees.each do |fee|
      xml['tns'].Naknada do
        xml['tns'].NazivN fee.name
        xml['tns'].IznosN fee.value
      end
    end
  end
end
add_invoice_number_info(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 41
def add_invoice_number_info(xml)
  xml['tns'].BrRac do
    xml['tns'].BrOznRac object.issued_number.to_s
    xml['tns'].OznPosPr object.issued_office.to_s
    xml['tns'].OznNapUr object.issued_machine.to_s
  end
end
add_invoice_summary(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 66
def add_invoice_summary(xml)
  xml['tns'].IznosUkupno object.summed_total_str
  xml['tns'].NacinPlac object.payment_method
  xml['tns'].OibOper object.operator_pin
  xml['tns'].ZastKod object.security_code
  xml['tns'].NakDost object.subsequent_delivery
end
add_invoice_tax_info(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 49
def add_invoice_tax_info(xml)
  Serializers::Tax.new(xml, object).call
end
add_paragon_label(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 74
def add_paragon_label(xml)
  return if object.paragon_label.nil?
  xml['tns'].ParagonBrRac object.paragon_label
end
add_specific_purpose(xml) click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 79
def add_specific_purpose(xml)
  return if object.specific_purpose.nil?
  xml['tns'].SpecNamj object.specific_purpose
end
message_id() click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 6
def message_id
  'RacunZahtjev'
end
raw_xml() click to toggle source
# File lib/fiscalizer/serializers/invoice.rb, line 10
def raw_xml
  @raw_xml ||= begin
    Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
      xml['tns'].RacunZahtjev(root_hash) do
        add_header(xml)
        add_body(xml)
        add_signature(xml)
      end
    end
  end
end