class RpiMarca::Receipt

Constants

IPAS_RECEIPT_NOT_REQUIRED

Attributes

agent[R]
applicant[R]
assignee[R]
assignor[R]
date[R]
number[R]
service_code[R]

Public Class Methods

new(number:, date:, service_code: nil, agent: nil, applicant: nil, assignor: nil, assignee: nil) click to toggle source
# File lib/rpi_marca/receipt.rb, line 12
def initialize(number:, date:, service_code: nil, agent: nil,
               applicant: nil, assignor: nil, assignee: nil)
  @number = number
  @date = date
  @service_code = format_service_code(service_code)
  @agent = agent
  @applicant = applicant
  @assignor = assignor
  @assignee = assignee
end
parse(el) click to toggle source
# File lib/rpi_marca/receipt.rb, line 23
def self.parse(el)
  return if el.nil?

  number = Helpers.get_attribute_value(el, 'numero') or
    fail ParseError, 'Receipt number is required'
  date = Helpers.get_attribute_value(el, 'data') or
    fail ParseError, 'Receipt date is required'

  new(
    number: number,
    date: Helpers.parse_date(date),
    **optional_params(el)
  )
end

Private Class Methods

optional_params(el) click to toggle source
# File lib/rpi_marca/receipt.rb, line 38
def self.optional_params(el)
  {
    service_code: Helpers.get_attribute_value(el, 'codigoServico'),
    agent: Helpers.get_element_value(el.at_xpath('procurador')),
    applicant: Owner.parse(el.at_xpath('requerente')),
    assignor: Owner.parse(el.at_xpath('cedente')),
    assignee: Owner.parse(el.at_xpath('cessionario'))
  }
end

Private Instance Methods

format_service_code(code) click to toggle source
# File lib/rpi_marca/receipt.rb, line 52
def format_service_code(code)
  "#{code[0...3]}.#{code[3..-1]}".chomp('.') if code
end