Module: Msip::ImportaHelper

Defined in:
app/helpers/msip/importa_helper.rb

Class Method Summary collapse

Class Method Details

.fecha_local_colombia_a_date(f, menserror) ⇒ Object

Si hay error reotrna nil y agrega en menserror el error

Parameters:

  • f

    es fecha en formato dd/M/aaaa

  • menserror

    es colchon de mensajes de error.

Returns:

  • objeto Date con fecha de f si no hay error



34
35
36
37
38
39
40
41
42
43
# File 'app/helpers/msip/importa_helper.rb', line 34

def fecha_local_colombia_a_date(f, menserror)
  d = Msip::FormatoFechaHelper.fecha_local_colombia_estandar(f, menserror)
  if !d
    menserror << "  No pudo reconocer fecha #{f}."
    nil
  else
    d = Date.strptime(d, "%Y-%m-%d")
  end
  d
end

.nombre_en_tabla_basica(tbasica, nombre, menserror, camponombre = "nombre") ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/helpers/msip/importa_helper.rb', line 5

def nombre_en_tabla_basica(tbasica, nombre, menserror,
  camponombre = "nombre")
  if !nombre || nombre == ""
    return nil
  end

  d = tbasica.where(
    "upper(unaccent(#{camponombre})) = "\
      "upper(unaccent(?))",
    nombre,
  )
  if d.count == 0
    menserror << "  No se encontró '#{nombre}' en tabla básica "\
      "#{tbasica} al buscar en el campo #{camponombre}."
    nil
  elsif d.count > 1
    menserror << "  En la tabla básica #{tbasica.class} hay #{d.count} "\
      "registros cuyo campo #{camponombre} es #{nombre}."
    nil
  else # d.count == 1
    d.take
  end
end

.separa_apellidos_nombres(nombre, menserror) ⇒ Object

Returns arreglo con nombre y apellido separados usando heurística simple.

Parameters:

  • nombre

    Apellido y nombre

Returns:

  • arreglo con nombre y apellido separados usando heurística simple



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'app/helpers/msip/importa_helper.rb', line 48

def separa_apellidos_nombres(nombre, menserror)
  apellidos = "N"
  nombres = "N"
  n = nombre.to_s.gsub(/  */, " ").gsub(/^ /, "").gsub(/ $/, "")
  p = n.split(" ")
  if p.count == 0
  elsif p.count == 1
    apellidos = p[0]
  elsif p.count == 2
    apellidos = p[0]
    nombres = p[1]
  elsif p.count == 3
    apellidos = p[0] + " " + p[1]
    nombres = p[2]
  elsif p.count == 4
    apellidos = p[0] + " " + p[1]
    nombres = p[2] + " " + p[3]
  elsif p.count == 5
    apellidos = p[0] + " " + p[1] + " " + p[2]
    nombres = p[3] + " " + p[4]
  elsif p.count == 6
    apellidos = p[0] + " " + p[1] + " " + p[2]
    nombres = p[3] + " " + p[4] + " " + p[5]
  elsif p.count == 7
    apellidos = p[0] + " " + p[1] + " " + p[2] + " " + p[3]
    nombres = p[4] + " " + p[5] + " " + p[6]
  else 
    apellidos = p[0] + " " + p[1] + " " + p[2] + " " + p[3]
    nombres = p[4..-1].join(" ")
  end
  [nombres, apellidos]
end