/// <summary> /// calcularResultados /// metodo encargado de calcular los resultados kpi para los usuarios que pertenecen a un rol /// </summary> /// <param name="registros">Registros mercadeo</param> /// <returns>List(Of String)</returns> /// <remarks><para>Historia de Creación y modificaciones: /// <list type="bullet"> /// <item>Autor.: Jimmi Vila </item> /// <item>10/10/2015 - Creación</item> /// </list></para></remarks> public List <string> calcularResultados(List <RegistroMercadeo> registros, List <Usuario> usuarios) { List <string> result = new List <string>(); //agrupar registros if (!Periodicidad.Equals("mensual")) { registros = agruparRegistros(usuarios, registros); } foreach (Usuario user in usuarios) { foreach (RegistroMercadeo registro in registros) { if (registro.usuario != null) { if (registro.usuario.UsuarioID == user.UsuarioID) { result.Add(DescKpi); result.Add(user.Nombre + " " + user.Apellidos); result.Add(Formato); result.Add(Objetivo.ToString()); if (isCalculoCampoUnico()) { double datoCampo = getDatoCampo(registro, 0); result.Add(formatoFinal(datoCampo).ToString()); result.Add(calcularColorResultado(datoCampo)); } else { List <double> datos = new List <double>(); List <DetalleFormula> formula = Formula.ToList <DetalleFormula>(); for (int i = 0; i < Formula.Count; i++) { if (formula[i].Tabla != null) { //result.Add(getDatoCampo(registro, i).ToString()); datos.Add(getDatoCampo(registro, i)); } else if (formula[i].Valor != 0) { //result.Add(formula[i].Valor.Value.ToString()); datos.Add(formula[i].Valor.Value); } } result.Add(formatoFinal(aplicarFormula(datos, formula)).ToString()); result.Add(calcularColorResultado(aplicarFormula(datos, formula))); } } } } } return(result); }