private void Agregar_fila_analisis_economico_financiero(resumen_categoria_anio.conceptos_analisis_economico_financiero concepto, List<resumen_categoria_anio.resultados_economicos_financieros> resultados, Table tree) { TableRow row = new TableRow(); row.Attributes.Add("class", "treegrid-" + concepto.ToString()); //concepto Reportes.Valores_anio_equipo ds = Session["ds_equipo_anio"] as Reportes.Valores_anio_equipo; Reportes.Valores_anio_equipo.Detalle_itemRow dir = ds.Detalle_item.NewDetalle_itemRow(); TableCell column_resultado = new TableCell(); string tooltip = ""; switch (concepto) { case resumen_categoria_anio.conceptos_analisis_economico_financiero.finan_resultado: dir.Nombre_item = "Resultado Financiero"; dir.Bold = "SI"; column_resultado.Text = "Resultado Financiero"; tooltip = "Ingresos totales - Costos Fijos Erogables - Impuestos (5% del ingreso facturado)"; break; case resumen_categoria_anio.conceptos_analisis_economico_financiero.porcentaje_de_ganancias: dir.Nombre_item = "Porcentaje de ganancias"; dir.Bold = "SI"; column_resultado.Text = "Porcentaje de ganancias"; tooltip = "Resultado financiero / Ingresos"; break; case resumen_categoria_anio.conceptos_analisis_economico_financiero.velocidad_de_recupero: dir.Nombre_item = "Velocidad de recupero"; dir.Bold = "SI"; column_resultado.Text = "Velocidad de recupero"; tooltip = "Amortización / Resultado financiero"; break; default: break; } row.Cells.Add(column_resultado); tree.Rows.Add(row); //valores mensuales, mes 13 = total, mes 14 = promedio for (int i = 0; i < 14; i++) { resumen_categoria_anio.resultados_economicos_financieros vm = resultados.First(x => x.agrupacion == ((resumen_categoria_anio.agrupaciones)i + 1) && x.tipo == concepto); TableCell column_valor = new TableCell(); column_valor.Attributes.Add("align", "right"); Label valor = new Label(); valor.ToolTip = tooltip; valor.Enabled = false; valor.ID = "valor_mes_" + vm.agrupacion.ToString() + "_id_concepto_" + vm.tipo.ToString(); valor.Attributes.Add("class", "form-control"); switch (concepto) { case resumen_categoria_anio.conceptos_analisis_economico_financiero.finan_resultado: dir[i + 1] = Cadena.Formato_moneda(vm.valor, Cadena.Moneda.pesos); valor.Text = Cadena.Formato_moneda(vm.valor, Cadena.Moneda.pesos); break; case resumen_categoria_anio.conceptos_analisis_economico_financiero.porcentaje_de_ganancias: dir[i + 1] = Cadena.Formato_porcentaje(vm.valor * Convert.ToDecimal(100)); valor.Text = Cadena.Formato_porcentaje(vm.valor * Convert.ToDecimal(100)); break; case resumen_categoria_anio.conceptos_analisis_economico_financiero.velocidad_de_recupero: dir[i + 1] = vm.valor.ToString(); valor.Text = vm.valor.ToString(); break; default: break; } if (vm.valor < 0) { valor.ForeColor = Color.Red; } column_valor.Controls.Add(valor); row.Cells.Add(column_valor); } ds.Detalle_item.Rows.Add(dir); Session["ds_equipo_anio"] = ds; }
private void CrearMostrarTabla(int id_categoria, int anio) { Reportes.Valores_anio_equipo ds = new Reportes.Valores_anio_equipo(); using (var cxt = new Model1Container()) { List<Item_ingreso_egreso> conceptos; conceptos = cxt.Items_ingresos_egresos.ToList(); var roots = conceptos.Where(ii => ii.id_item_padre == null); Table tree = new Table(); tree.Attributes.Add("runat", "server"); tree.Attributes.Add("class", "tree table"); tree.ID = "tree"; #region título TableRow row = new TableRow(); row.TableSection = TableRowSection.TableHeader; row.Attributes.Add("class", "treegrid-0"); row.Attributes.Add("title", "Conceptos"); TableCell column = new TableCell(); column.Style.Value = "background-color:lightgray"; column.Text = "<b>Conceptos</b>"; row.Cells.Add(column); for (int i = 0; i < 12; i++) { DateTime d = new DateTime(DateTime.Today.Year, i + 1, 1); TableCell column_mes = new TableCell(); column_mes.Style.Value = "width:200px;background-color:lightgray"; column_mes.Attributes.Add("align", "center"); column_mes.Text = "<b>" + d.ToString("MMMM") + "</b>"; row.Cells.Add(column_mes); } TableCell column_totales = new TableCell(); column_totales.Style.Value = "width:250px;background-color:lightgray"; column_totales.Attributes.Add("align", "center"); column_totales.Text = "<b>TOTAL " + ddl_anio.Text + "</b>"; row.Cells.Add(column_totales); TableCell column_prom = new TableCell(); column_prom.Style.Value = "width:200px;background-color:lightgray"; column_prom.Attributes.Add("align", "center"); column_prom.Text = "<b>Promedio mensual</b>"; row.Cells.Add(column_prom); tree.Rows.Add(row); #endregion resumen_categoria_anio resumen_categoria_anio = new resumen_categoria_anio(anio, id_categoria); Reportes.Valores_anio_equipo.Datos_equipoRow der = ds.Datos_equipo.NewDatos_equipoRow(); der.Nombre = resumen_categoria_anio.Categoria.nombre; der.Año = resumen_categoria_anio.Año.ToString(); ds.Datos_equipo.Rows.Add(der); Session["ds_equipo_anio"] = ds; foreach (Item_ingreso_egreso item in roots) { AgregarNodo(item, tree, cxt, resumen_categoria_anio); } #region Pie de tabla List<resumen_categoria_anio.resultados_economicos_financieros> resultados = resumen_categoria_anio.analisis_economico_financiero(); //agregar analisis financiero #region Titulo analisis financiero TableRow row_af = new TableRow(); row_af.Attributes.Add("class", "treegrid-0"); row_af.Attributes.Add("title", "Análisis Financiero"); TableCell column_af = new TableCell(); column_af.Style.Value = "width:350px;background-color:lightgray"; column_af.Text = "<b>Análisis Financiero</b>"; row_af.Controls.Add(column_af); for (int i = 0; i < 12; i++) { //DateTime d = new DateTime(DateTime.Today.Year, i + 1, 1); TableCell column_mes = new TableCell(); column_mes.Style.Value = "width:200px;background-color:lightgray"; //column_mes.Attributes.Add("align", "center"); //column_mes.InnerHtml = "<b>" + d.ToString("MMMM") + "</b>"; row_af.Cells.Add(column_mes); } TableCell column_totales_af = new TableCell(); column_totales_af.Style.Value = "width:250px;background-color:lightgray"; //column_totales_af.Attributes.Add("align", "center"); //column_totales_af.InnerHtml = "<b>TOTAL " + ddl_anio.Text + "</b>"; row_af.Cells.Add(column_totales_af); TableCell column_prom_af = new TableCell(); column_prom_af.Style.Value = "width:200px;background-color:lightgray"; //column_prom_af.Attributes.Add("align", "center"); //column_prom_af.InnerHtml = "<b>Promedio mensual</b>"; row_af.Cells.Add(column_prom_af); tree.Controls.Add(row_af); #endregion Agregar_fila_analisis_economico_financiero(resumen_categoria_anio.conceptos_analisis_economico_financiero.finan_resultado, resultados, tree); //agregar porcentaje de ganancias Agregar_fila_analisis_economico_financiero(resumen_categoria_anio.conceptos_analisis_economico_financiero.porcentaje_de_ganancias, resultados, tree); //agregar velocidad de recupero Agregar_fila_analisis_economico_financiero(resumen_categoria_anio.conceptos_analisis_economico_financiero.velocidad_de_recupero, resultados, tree); #endregion div_tree.Controls.Clear(); div_tree.Controls.Add(tree); } }
private void AgregarNodo(Item_ingreso_egreso concepto, Table tree, Model1Container cxt, resumen_categoria_anio valores_anuales) { TableRow row = new TableRow(); row.Attributes.Add("class", "treegrid-" + concepto.id_item + (concepto.id_item_padre != null ? " treegrid-parent-" + concepto.id_item_padre : "") + (concepto.id_item_padre == null ? " h4" : "") + (concepto.tipo == "Ingreso" ? " alert-success" : " alert-danger")); row.Attributes.Add("title", concepto.descripcion); Reportes.Valores_anio_equipo ds = Session["ds_equipo_anio"] as Reportes.Valores_anio_equipo; Reportes.Valores_anio_equipo.Detalle_itemRow dir = ds.Detalle_item.NewDetalle_itemRow(); //concepto TableCell column = new TableCell(); dir.Nombre_item = concepto.nombre; dir.Bold = concepto.Hijos.Count > 0 ? "SI" : "NO"; column.Text = (concepto.Hijos.Count > 0 ? "<strong>" : "") + concepto.nombre + (concepto.Hijos.Count > 0 ? "</strong>" : ""); row.Cells.Add(column); List<resumen_categoria_anio.valor_item_mes> valores_concepto = valores_anuales.Obtener_agrupacion_por_concepto(concepto.id_item); //valores mensuales, mes 13 = total, mes 14 = promedio for (int i = 0; i < 14; i++) { resumen_categoria_anio.valor_item_mes vm = valores_concepto.First(x => x.agrupacion == ((resumen_categoria_anio.agrupaciones)i + 1)); dir[i + 1] = Cadena.Formato_moneda(vm.valor, Cadena.Moneda.pesos); TableCell column_valor = new TableCell(); column_valor.Attributes.Add("align", "right"); Label valor = new Label(); valor.Enabled = false; valor.ID = "valor_mes_" + vm.agrupacion.ToString() + "_id_concepto_" + vm.id_concepto.ToString(); valor.Attributes.Add("class", "form-control"); valor.Text = Cadena.Formato_moneda(vm.valor, Cadena.Moneda.pesos); column_valor.Controls.Add(valor); row.Cells.Add(column_valor); } if (((Label)row.Cells[14].Controls[0]).Text != "$ 0,00") { tree.Rows.Add(row); } ds.Detalle_item.Rows.Add(dir); Session["ds_equipo_anio"] = ds; foreach (Item_ingreso_egreso hijo in concepto.Hijos) { AgregarNodo(hijo, tree, cxt, valores_anuales); } }