Class: VerifactuRails::Persona

Inherits:
Object
  • Object
show all
Defined in:
lib/verifactu_rails/registro.rb

Overview

Una persona identificada por NIF español O por identificación extranjera, nunca las dos (sf:PersonaFisicaJuridicaType lo modela como ). Destinatario y Tercero comparten forma pero no reglas de identificación.

Direct Known Subclasses

Destinatario, Tercero

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre_razon:, nif: nil, id_otro: nil) ⇒ Persona

Returns a new instance of Persona.

Parameters:

  • id_otro (Hash, nil) (defaults to: nil)

    para no residentes: { codigo_pais: 'FR', id_type: '02', id: 'FR12345678901' }



152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/verifactu_rails/registro.rb', line 152

def initialize(nombre_razon:, nif: nil, id_otro: nil)
  if nif.nil? == id_otro.nil?
    raise ValidacionError,
          "Indica exactamente uno de nif: o id_otro: para #{self.class.quien}"
  end

  @nombre_razon = Formato.limitar(nombre_razon, 'NombreRazon', 120)
  @nif = nif && Formato.nif(nif, "NIF de #{self.class.quien}")
  @id_otro = id_otro && IdOtro.normalizar(id_otro, quien: self.class.quien,
                                                   tipos_con_es: self.class.tipos_con_es,
                                                   prohibidos: self.class.prohibidos)
end

Instance Attribute Details

#id_otroObject (readonly)

Returns the value of attribute id_otro.



148
149
150
# File 'lib/verifactu_rails/registro.rb', line 148

def id_otro
  @id_otro
end

#nifObject (readonly)

Returns the value of attribute nif.



148
149
150
# File 'lib/verifactu_rails/registro.rb', line 148

def nif
  @nif
end

#nombre_razonObject (readonly)

Returns the value of attribute nombre_razon.



148
149
150
# File 'lib/verifactu_rails/registro.rb', line 148

def nombre_razon
  @nombre_razon
end

Instance Method Details

#a_paresObject

Orden EXACTO de sf:PersonaFisicaJuridicaType.



168
169
170
171
# File 'lib/verifactu_rails/registro.rb', line 168

def a_pares
  pares = { 'NombreRazon' => nombre_razon }
  nif ? pares.merge('NIF' => nif) : pares.merge('IDOtro' => id_otro)
end

#id_typeObject



165
# File 'lib/verifactu_rails/registro.rb', line 165

def id_type = id_otro && id_otro['IDType']