Proyecto

General

Perfil

Acciones

Correc. - Mejora #2477

cerrada

Mejoras en formato de datos para resumen ejecutivo de agentes

Añadido por Santiago Ramos hace casi 9 años. Actualizado hace casi 9 años.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2016-03-01
Fecha fin:
% Realizado:

100%

Tiempo estimado:
4:00 h
Versión:

Descripción

El 01/03/16 a las 10:13, Anastasio Navarro escribió:
>
> Necesitaría que en los Resúmenes Ejecutivos de Oficinas  (Agente//Resumen//Resumen Ejecutivo) y en el Resumen de Usuarios (Cuadro de Mando//Resumen de usuario)
> que se descargan desde Gespro les hicieras algunos cambios para que los pueda procesar en Excel con más facilidad y rapidez:
>
> 1.    Que las fechas de inicio y fin tengan formato FECHA.
> 2.    Que los números y porcentajes tengan formato NÚMERO.
> 3.    Que separes o insertes un tab entre el numero y palabra (1 proyecto) para que en Excel me salgan en celdas separadas el numero y la palabra.
>
Acciones #1

Actualizado por Santiago Ramos hace casi 9 años

  • % Realizado cambiado de 0 a 50
  • Tiempo estimado cambiado de 2:00 h a 4:00 h

He limpiado el código del método que generaba el resumen ejecutivo y ya se muestra correctamente en .xls : El formateo de los campos debe hacerse en el helper y no en el controlador, de esa forma cuando se muestra en html o pdf se ajusta a la presentación elegida, pero cuando se vuelca a xls se envían los datos en crudo y que sea la propia hoja la que aplique cómo se ve cada tipo de campo.

He aprovechado para tocar en el helper que formatea los campos y cambiar cómo se procesan las fechas (según locale) y los enteros (conversión directa a string):

  # devuelve una cadena adecuada al tipo de contenido
  def celda_formateada celda, formato=nil
    # Las cadenas las devolvemos incluyendoles saltos de página forzados
    return (celda == "" ? "&nbsp;" : h(celda).gsub(/\n/,"<br>").html_safe) if celda.is_a? String
    # Las fechas las devolvemos segun los locales que estemos usando
    return I18n.l celda if celda.is_a? Date
    # Si no es ni cadena ni fecha será un número...
    # Para volcados con 'td_g', lo tratamos con 5 decimales
    if formato && formato.end_with?("_td_g")
      return float_a_moneda(celda,'%.5f')
    # Si no estamos indicando formato, o este no es td_g
    else
      # Los enteros tal cual
      return celda.to_s if celda.is_a? Integer
      # Y el resto con dos decimales
      return float_a_moneda(celda) unless celda.is_a? Integer
    end
  end
Acciones #2

Actualizado por Santiago Ramos hace casi 9 años

  • Estado cambiado de Asignada a Resuelta
  • % Realizado cambiado de 50 a 100
Acciones

Exportar a: Atom PDF