protected void btn_agregar_rubro_egreso_ServerClick(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                Item_ingreso_egreso concepto_ingreso = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "EGRESOS", descripcion = "Representa el total de los egresos que produce el equipo" };
                cxt.Items_ingresos_egresos.Add(concepto_ingreso);
                cxt.SaveChanges();
                tb_descripcion.Value = string.Empty;
                tb_nombre.Value = string.Empty;
            }

            CargarConceptos();
        }
        protected void btn_agregar_rubro_ingreso_ServerClick(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                try
                {
                    Item_ingreso_egreso concepto_ingreso = new Item_ingreso_egreso() { tipo = "Ingreso", nombre = "INGRESOS", descripcion = "Representa el total de los ingresos que produce el equipo" };
                    cxt.Items_ingresos_egresos.Add(concepto_ingreso);
                    cxt.SaveChanges();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "Error", MessageBox.Tipo_MessageBox.Danger);
                }
            }

            CargarConceptos();
        }
        protected void btn_guardar_nuevo_concepto_ServerClick(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                try
                {
                    int id_item_padre = 0;

                    if (int.TryParse(hidden_id_padre.Value, out id_item_padre))
                    {
                        Item_ingreso_egreso padre = cxt.Items_ingresos_egresos.FirstOrDefault(ii => ii.id_item == id_item_padre);
                        if (padre != null)
                        {
                            Item_ingreso_egreso concepto_ingreso = new Item_ingreso_egreso() { id_item_padre = id_item_padre, tipo = padre.tipo, nombre = tb_nombre.Value, descripcion = tb_descripcion.Value };
                            cxt.Items_ingresos_egresos.Add(concepto_ingreso);
                            cxt.SaveChanges();

                            tb_descripcion.Value = string.Empty;
                            tb_nombre.Value = string.Empty;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "Error", MessageBox.Tipo_MessageBox.Danger);
                }
            }

            CargarConceptos();
        }
        private void AgregarNodo(Item_ingreso_egreso item, HtmlGenericControl tree)
        {
            HtmlGenericControl row = new HtmlGenericControl("tr");
            row.Attributes.Add("class", "treegrid-" + item.id_item + (item.id_item_padre != null ? " treegrid-parent-" + item.id_item_padre : "") + (item.id_item_padre == null ? " h4" : "") + (item.tipo == "Ingreso" ? " alert-success" : " alert-danger"));
            row.Attributes.Add("title", item.descripcion);

            HtmlGenericControl column = new HtmlGenericControl("td");
            column.InnerHtml = (item.Hijos.Count > 0 ? "<strong>" : "") + item.nombre + (item.Hijos.Count > 0 ? "</strong>" : "");
            row.Controls.Add(column);
            tree.Controls.Add(row);

            Usuario usuariologueado = Session["UsuarioLogueado"] as Usuario;
            if (usuariologueado.perfil == perfil_usuario.Admin)
            {
                HtmlGenericControl column_agregar_eliminar = new HtmlGenericControl("td");

                HtmlButton boton_editar = new HtmlButton();
                boton_editar.Attributes.Add("runat", "server");
                boton_editar.CausesValidation = false;
                boton_editar.ID = "btn_editar_nivel_" + item.id_item;
                boton_editar.Attributes.Add("class", "btn btn-xs btn-warning");
                boton_editar.InnerText = "Editar nivel";
                boton_editar.ServerClick += boton_editar_ServerClick;

                HtmlButton boton_agregar = new HtmlButton();
                boton_agregar.Attributes.Add("runat", "server");
                boton_agregar.CausesValidation = false;
                boton_agregar.ID = "btn_agregar_nivel_" + item.id_item;
                boton_agregar.Attributes.Add("class", "btn btn-xs btn-success");
                boton_agregar.InnerText = "Agregar nivel";
                boton_agregar.ServerClick += boton_agregar_ServerClick;

                HtmlButton boton_eliminar = new HtmlButton();
                boton_eliminar.Attributes.Add("runat", "server");
                boton_eliminar.CausesValidation = false;
                boton_eliminar.ID = "btn_quitar_nivel_" + item.id_item;
                boton_eliminar.Attributes.Add("class", "btn btn-xs btn-danger");
                boton_eliminar.InnerText = "Eliminar nivel";
                boton_eliminar.ServerClick += boton_eliminar_ServerClick;

                column_agregar_eliminar.Controls.Add(boton_editar);
                column_agregar_eliminar.Controls.Add(boton_eliminar);
                column_agregar_eliminar.Controls.Add(boton_agregar);

                row.Controls.Add(column_agregar_eliminar);
            }

            foreach (Item_ingreso_egreso hijo in item.Hijos.OrderBy(x => x.id_item))
            {
                AgregarNodo(hijo, tree);
            }
        }
        private void InicializarDB()
        {
            using (var cxt = new Model1Container())
            {
                string clave = Cripto.Encriptar("123456");

                Usuario usr = new Usuario()
                {
                    nombre = "José Federico Bertoncini",
                    user = "******",
                    pass = clave,
                    perfil = perfil_usuario.Admin
                };

                cxt.Usuarios.Add(usr);

                cxt.Areas.Add(new Area() { nombre = "Taller" });

                cxt.Categorias_empleados.Add(new Categoria_empleado() { nombre = "Administrativo", descripcion = "" });
                cxt.Categorias_empleados.Add(new Categoria_empleado() { nombre = "Mecánico", descripcion = "" });
                cxt.Categorias_empleados.Add(new Categoria_empleado() { nombre = "Soldador", descripcion = "" });
                cxt.Categorias_empleados.Add(new Categoria_empleado() { nombre = "Pintor", descripcion = "" });

                cxt.Categorias_equipos.Add(new Categoria_equipo() { nombre = "Gruas", descripcion = "" });
                cxt.Categorias_equipos.Add(new Categoria_equipo() { nombre = "Camiones y carretones", descripcion = "" });
                cxt.Categorias_equipos.Add(new Categoria_equipo() { nombre = "Vehículos menores", descripcion = "" });
                cxt.Categorias_equipos.Add(new Categoria_equipo() { nombre = "Ventas", descripcion = "Equipos dedicados a la venta" });
                cxt.Categorias_equipos.Add(new Categoria_equipo() { nombre = "Trabajos particulares", descripcion = "Agrupa trabajos particulares" });
                Categoria_equipo ce = new Categoria_equipo() { nombre = "Otros", descripcion = "Agrupa otros equipos - conceptos" };
                cxt.Categorias_equipos.Add(ce);
                cxt.SaveChanges();

                cxt.Equipos.Add(new Equipo() { Categoria = ce, Generico = true, nombre = "Ausencia", fecha_baja = null, OUT = false, notas = "" });
                cxt.Equipos.Add(new Equipo() { Categoria = ce, Generico = true, nombre = "Guardia", fecha_baja = null, OUT = false, notas = "" });
                cxt.Equipos.Add(new Equipo() { Categoria = ce, Generico = true, nombre = "Varios Taller", fecha_baja = null, OUT = false, notas = "" });
                cxt.SaveChanges();

                Item_ingreso_egreso ingreso = new Item_ingreso_egreso() { tipo = "Ingreso", nombre = "INGRESOS", descripcion = "Representa el total de los ingresos que produce el equipo" };
                    Item_ingreso_egreso Trabajado = new Item_ingreso_egreso() { tipo = "Ingreso", nombre = "Trabajado", descripcion = "", Padre = ingreso };
                    Item_ingreso_egreso Interno = new Item_ingreso_egreso() { tipo = "Ingreso", nombre = "Interno", descripcion = "", Padre = ingreso };
                    Item_ingreso_egreso Presupuestado = new Item_ingreso_egreso() { tipo = "Ingreso", nombre = "Presupuestado", descripcion = "", Padre = ingreso };
                    Item_ingreso_egreso Impuestos = new Item_ingreso_egreso() { tipo = "Ingreso", nombre = "Impuestos", descripcion = "", Padre = ingreso };

                Item_ingreso_egreso egreso = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "EGRESOS", descripcion = "Representa el total de los egresos que produce el equipo" };
                    Item_ingreso_egreso costos_fijos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Costos Fijos", descripcion = "", Padre = egreso };
                        Item_ingreso_egreso costos_fijos_erogables = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Costos Fijos Erogables", descripcion = "", Padre = costos_fijos };
                            Item_ingreso_egreso sueldo_chofer_ponderado = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Sueldo y CS Chofer (Ponderado)", descripcion = "", Padre = costos_fijos_erogables };
                            Item_ingreso_egreso seguro_terceros = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Seguro Terceros", descripcion = "", Padre = costos_fijos_erogables };
                            Item_ingreso_egreso seguro_tecnico = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Seguro Técnico ", descripcion = "", Padre = costos_fijos_erogables };
                            Item_ingreso_egreso seguro_compartido = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Seguro Compartido", descripcion = "", Padre = costos_fijos_erogables };
                            Item_ingreso_egreso control_satelitar = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Control Satelital", descripcion = "", Padre = costos_fijos_erogables };
                            Item_ingreso_egreso bureou_veritas = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Bureau Veritas", descripcion = "", Padre = costos_fijos_erogables };
                            Item_ingreso_egreso patente = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Patente (bimestral)", descripcion = "", Padre = costos_fijos_erogables };
                        Item_ingreso_egreso costos_fijos_no_erogables = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Costos Fijos No Erogables", descripcion = "", Padre = costos_fijos };
                            Item_ingreso_egreso amortizacion = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Amortización", descripcion = "", Padre = costos_fijos_no_erogables };

                    Item_ingreso_egreso costos_variables = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Costos Variables", descripcion = "", Padre = egreso };
                        Item_ingreso_egreso repuestos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Repuestos y Reparac. FC y PP", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso combustible = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Combustible", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso combustible_playa = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Combustible Playa", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso lubricantes = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Lubricantes", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso filtros = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Filtros", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso neumaticos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Neumáticos", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso pintura = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Pintura", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso izaje = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Elem. de Izaje Individual", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso camioneta = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Gastos Camioneta Individ.", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso alquiler_auto = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Alquiler Auto", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso multas = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Multas y comisiones", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso multas_pp = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Multas y comisiones PP", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso viaticos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos FC", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso viaticos_pp = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Presupuestado", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso horas_extra = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Horas Extra Chofer", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso accesorios = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Accesorios Hs Extra 24% (1/12x2)", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso mano_obra = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Mano Obra Ayudantes", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso otros = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Otros", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso otros_insumos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Otros Insumos CF PP", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso varios = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Varios ", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso indumentaria = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Indumentaria p personal(incluye elem de protección personal)", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso telefono_celular = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Teléfono celular (abono)", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso herramientas = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Herramienta ", descripcion = "", Padre = costos_variables };
                        Item_ingreso_egreso fletes = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Fletes", descripcion = "", Padre = costos_variables };

                        Item_ingreso_egreso costos_variables_en_funcion = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Costos Variab. En Función FC", descripcion = "", Padre = costos_variables };
                            Item_ingreso_egreso elementos_de_izaje = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Elem. De Izaje General", descripcion = "", Padre = costos_variables_en_funcion };
                            Item_ingreso_egreso gastos_camioneta_general = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Gastos Camioneta General", descripcion = "", Padre = costos_variables_en_funcion };
                            Item_ingreso_egreso gastos_administracion = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Gastos Administración", descripcion = "", Padre = costos_variables_en_funcion };

                        Item_ingreso_egreso soldadores_segun_horas_hombre = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Soldadores Según Hs Hbre.", descripcion = "", Padre = costos_variables };
                            Item_ingreso_egreso mano_obra_soldadores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Mano Obra Soldadores", descripcion = "", Padre = soldadores_segun_horas_hombre };
                            Item_ingreso_egreso insumos_soldadores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Insumos Soldadores", descripcion = "", Padre = soldadores_segun_horas_hombre };
                            Item_ingreso_egreso herramientas_soldadores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Herramientas Soldadores", descripcion = "", Padre = soldadores_segun_horas_hombre };
                            Item_ingreso_egreso viaticos_soldadores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Soldadores", descripcion = "", Padre = soldadores_segun_horas_hombre };
                            Item_ingreso_egreso viaticos_pp_soldadores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Presup Soldadores", descripcion = "", Padre = soldadores_segun_horas_hombre };

                        Item_ingreso_egreso mecanicos_segun_horas_hombre = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Mecánicos Según Hs Hbre.", descripcion = "", Padre = costos_variables };
                            Item_ingreso_egreso mano_obra_mecanicos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Mano Obra Taller", descripcion = "", Padre = mecanicos_segun_horas_hombre };
                            Item_ingreso_egreso insumos_mecanicos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Insumos Taller", descripcion = "", Padre = mecanicos_segun_horas_hombre };
                            Item_ingreso_egreso herramientas_mecanicos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Herramientas Taller", descripcion = "", Padre = mecanicos_segun_horas_hombre };
                            Item_ingreso_egreso viaticos_mecanicos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Taller", descripcion = "", Padre = mecanicos_segun_horas_hombre };
                            Item_ingreso_egreso viaticos_pp_mecanicos = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Presup Taller", descripcion = "", Padre = mecanicos_segun_horas_hombre };

                        Item_ingreso_egreso pintores_segun_horas_hombre = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Pintor Según Hs Hbre.", descripcion = "", Padre = costos_variables };
                            Item_ingreso_egreso mano_obra_pintores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Mano Obra Pintor", descripcion = "", Padre = pintores_segun_horas_hombre };
                            Item_ingreso_egreso insumos_pintores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Insumos Pintor", descripcion = "", Padre = pintores_segun_horas_hombre };
                            Item_ingreso_egreso herramientas_pintores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Herramientas Pintor", descripcion = "", Padre = pintores_segun_horas_hombre };
                            Item_ingreso_egreso viaticos_pintores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Pintor", descripcion = "", Padre = pintores_segun_horas_hombre };
                            Item_ingreso_egreso viaticos_pp_pintores = new Item_ingreso_egreso() { tipo = "Egreso", nombre = "Viaticos Presup Pintor", descripcion = "", Padre = pintores_segun_horas_hombre };

                cxt.Items_ingresos_egresos.Add(ingreso);
                cxt.Items_ingresos_egresos.Add(Trabajado);
                cxt.Items_ingresos_egresos.Add(Interno);
                cxt.Items_ingresos_egresos.Add(Presupuestado);
                cxt.Items_ingresos_egresos.Add(Impuestos);
                cxt.Items_ingresos_egresos.Add(egreso);
                cxt.Items_ingresos_egresos.Add(costos_fijos);
                cxt.Items_ingresos_egresos.Add(costos_fijos_erogables);
                cxt.Items_ingresos_egresos.Add(sueldo_chofer_ponderado);
                cxt.Items_ingresos_egresos.Add(seguro_terceros);
                cxt.Items_ingresos_egresos.Add(seguro_tecnico);
                cxt.Items_ingresos_egresos.Add(seguro_compartido);
                cxt.Items_ingresos_egresos.Add(control_satelitar);
                cxt.Items_ingresos_egresos.Add(bureou_veritas);
                cxt.Items_ingresos_egresos.Add(patente);
                cxt.Items_ingresos_egresos.Add(costos_fijos_no_erogables);
                cxt.Items_ingresos_egresos.Add(amortizacion);
                cxt.Items_ingresos_egresos.Add(costos_variables);
                cxt.Items_ingresos_egresos.Add(repuestos);
                cxt.Items_ingresos_egresos.Add(combustible);
                cxt.Items_ingresos_egresos.Add(combustible_playa);
                cxt.Items_ingresos_egresos.Add(lubricantes);
                cxt.Items_ingresos_egresos.Add(filtros);
                cxt.Items_ingresos_egresos.Add(neumaticos);
                cxt.Items_ingresos_egresos.Add(pintura);
                cxt.Items_ingresos_egresos.Add(izaje);
                cxt.Items_ingresos_egresos.Add(camioneta);
                cxt.Items_ingresos_egresos.Add(alquiler_auto);
                cxt.Items_ingresos_egresos.Add(multas);
                cxt.Items_ingresos_egresos.Add(multas_pp);
                cxt.Items_ingresos_egresos.Add(viaticos);
                cxt.Items_ingresos_egresos.Add(viaticos_pp);
                cxt.Items_ingresos_egresos.Add(horas_extra);
                cxt.Items_ingresos_egresos.Add(accesorios);
                cxt.Items_ingresos_egresos.Add(mano_obra);
                cxt.Items_ingresos_egresos.Add(otros);
                cxt.Items_ingresos_egresos.Add(otros_insumos);
                cxt.Items_ingresos_egresos.Add(varios);
                cxt.Items_ingresos_egresos.Add(indumentaria);
                cxt.Items_ingresos_egresos.Add(telefono_celular);
                cxt.Items_ingresos_egresos.Add(herramientas);
                cxt.Items_ingresos_egresos.Add(fletes);
                cxt.Items_ingresos_egresos.Add(costos_variables_en_funcion);
                cxt.Items_ingresos_egresos.Add(elementos_de_izaje);
                cxt.Items_ingresos_egresos.Add(gastos_camioneta_general);
                cxt.Items_ingresos_egresos.Add(gastos_administracion);
                cxt.Items_ingresos_egresos.Add(soldadores_segun_horas_hombre);
                cxt.Items_ingresos_egresos.Add(mano_obra_soldadores);
                cxt.Items_ingresos_egresos.Add(insumos_soldadores);
                cxt.Items_ingresos_egresos.Add(herramientas_soldadores);
                cxt.Items_ingresos_egresos.Add(viaticos_soldadores);
                cxt.Items_ingresos_egresos.Add(viaticos_pp_soldadores);
                cxt.Items_ingresos_egresos.Add(mecanicos_segun_horas_hombre);
                cxt.Items_ingresos_egresos.Add(mano_obra_mecanicos);
                cxt.Items_ingresos_egresos.Add(insumos_mecanicos);
                cxt.Items_ingresos_egresos.Add(herramientas_mecanicos);
                cxt.Items_ingresos_egresos.Add(viaticos_mecanicos);
                cxt.Items_ingresos_egresos.Add(viaticos_pp_mecanicos);
                cxt.Items_ingresos_egresos.Add(pintores_segun_horas_hombre);
                cxt.Items_ingresos_egresos.Add(mano_obra_pintores);
                cxt.Items_ingresos_egresos.Add(insumos_pintores);
                cxt.Items_ingresos_egresos.Add(herramientas_pintores);
                cxt.Items_ingresos_egresos.Add(viaticos_pintores);
                cxt.Items_ingresos_egresos.Add(viaticos_pp_pintores);

                cxt.SaveChanges();
            }
        }
        private void AgregarNodo(Item_ingreso_egreso concepto, Table tree, Model1Container cxt, resumen_equipo_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();
            dir.Nombre_equipo = " ";

            //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_equipo_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_equipo_anio.valor_item_mes vm = valores_concepto.First(x => x.agrupacion == ((resumen_equipo_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)
            {
                if ((valores_anuales.Equipo.EsTrabajo.HasValue && valores_anuales.Equipo.EsTrabajo.Value == true && hijo.mostrar_en_trabajo.HasValue && hijo.mostrar_en_trabajo.Value == true) ||
                   (valores_anuales.Equipo.EsTrabajo.HasValue && valores_anuales.Equipo.EsTrabajo.Value == false && hijo.mostrar_en_equipo.HasValue && hijo.mostrar_en_equipo.Value == true))
                {
                    AgregarNodo(hijo, tree, cxt, valores_anuales);
                }
            }
        }