Correccion - Mejora #2477
cerrada
Mejoras en formato de datos para resumen ejecutivo de agentes
Añadido por Santiago Ramos hace más de 8 años.
Actualizado hace más de 8 años.
Fecha de inicio:
2016-03-01
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.
>
- % 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 == "" ? " " : 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
- Estado cambiado de Asignada a Resuelta
- % Realizado cambiado de 50 a 100
Exportar a: Atom
PDF