Module: Msip::EdadSexoHelper
- Defined in:
- app/helpers/msip/edad_sexo_helper.rb
Class Method Summary collapse
-
.buscar_rango_edad(edad, modelorango) ⇒ Object
Id en tabla del rango o si no se puede calcular retorna ID del registro SIN INFORMACIÓN (o -1 si no hay SIN INFORMACIÓN).
-
.edad_de_fechanac_fecha(anionac, mesnac, dianac, anio, mes, dia) ⇒ Object
Retorna edad de una persona en cierta fecha @ return -1 si no puede calcularse por falta de años.
Class Method Details
.buscar_rango_edad(edad, modelorango) ⇒ Object
Returns id en tabla del rango o si no se puede calcular retorna ID del registro SIN INFORMACIÓN (o -1 si no hay SIN INFORMACIÓN).
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'app/helpers/msip/edad_sexo_helper.rb', line 41 def buscar_rango_edad(edad, modelorango) if !modelorango || !defined?(modelorango.constantize) || !defined?(!modelorango.constantize.habilitados) Rails.logger.debug("No se pudo usar modelorango") return -1 end t = modelorango.constantize.habilitados idsin = t.where("unaccent(nombre) ILIKE unaccent('SIN INFORMACIÓN')") idsin = if idsin.count == 1 idsin.take.id else -1 end c = t.where("(limiteinferior IS NULL) OR (limiteinferior <= ?)", edad) .where("(limitesuperior IS NULL) OR (? <= limitesuperior)", edad) ret = idsin if c.count == 0 Rails.logger.debug { "No se encontró edad #{edad} en tabla #{modelorango}" } elsif c.count > 1 Rails.logger.debug { "Traslape de #{c.count} rangos en edad #{edad}" } else # c.count == 1 ret = c.take.id end ret end |
.edad_de_fechanac_fecha(anionac, mesnac, dianac, anio, mes, dia) ⇒ Object
Retorna edad de una persona en cierta fecha @ return -1 si no puede calcularse por falta de años
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/helpers/msip/edad_sexo_helper.rb', line 12 def edad_de_fechanac_fecha(anionac, mesnac, dianac, anio, mes, dia) if anionac.nil? || anionac == "" return -1 end if anio.nil? || anio == "" return -1 end if anio < anionac return -1 end na = anio - anionac if mesnac && mesnac > 0 && mes && mes > 0 && mesnac >= mes if mesnac > mes || (dianac && dianac > 0 && dia && dia > 0 && dianac > dia) na -= 1 end end na end |