protected void btn_guardar_equipo_ServerClick(object sender, EventArgs e)
        {
            this.Validate("equipo");
            if (IsValid)
            {
                Equipo session_equipo = Session["equipo"] as Equipo;

                using (var cxt = new Model1Container())
                {
                    Equipo equipo = new Equipo();

                    if (session_equipo.id_equipo > 0)
                    {
                        equipo = cxt.Equipos.First(ee => ee.id_equipo == session_equipo.id_equipo);
                    }
                    else
                    {
                        cxt.Equipos.Add(equipo);
                    }

                    equipo.Generico = false;
                    equipo.notas = tb_notas_equipo.Value;
                    equipo.nombre = tb_nombre.Value;
                    equipo.id_categoria = Convert.ToInt32(ddl_categorias.SelectedItem.Value);
                    equipo.OUT = chk_out.Checked;

                    foreach (Item_por_amortizar parte in session_equipo.Items_por_amortizar)
                    {
                        if (parte.id_item == 0)
                        {
                            equipo.Items_por_amortizar.Add(new Item_por_amortizar()
                            {
                                costo_cero_km_uss = parte.costo_cero_km_uss,
                                meses_por_amortizar = parte.meses_por_amortizar,
                                nombre = parte.nombre,
                                porcentaje_usado = parte.porcentaje_usado,
                                porcentaje_valor_recidual = parte.porcentaje_valor_recidual,
                                periodo_alta_anio = parte.periodo_alta_anio,
                                periodo_alta_mes = parte.periodo_alta_mes
                            });
                        }
                    }

                    try
                    {
                        cxt.SaveChanges();
                        Session["equipo"] = null;
                        MessageBox.Show(this, "El equipo se guardo correctamente", MessageBox.Tipo_MessageBox.Success, "Genial!", "admin_equipos.aspx");
                    }
                    catch (Exception ex)
                    {
                        //inspeccion rapida y ((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors para ver el error
                        MessageBox.Show(this, "Upps! ocurrió un error!", MessageBox.Tipo_MessageBox.Danger);
                    }
                }
            }
            else
            {
                MessageBox.Show(this, "Verifique los valores ingresados", MessageBox.Tipo_MessageBox.Info);
            }
        }
        private void CargarValoresEquipo()
        {
            Equipo equipo = Session["equipo"] as Equipo;

            using (var cxt = new Model1Container())
            {
                if (equipo == null)
                {
                    Session["equipo"] = new Equipo();
                    lbl_costo_mensual.Text = Cadena.Formato_moneda(0, Cadena.Moneda.dolares);
                    lbl_costo_total_0km.Text = Cadena.Formato_moneda(0, Cadena.Moneda.dolares);
                    lbl_valor_por_amortizar.Text = Cadena.Formato_moneda(0, Cadena.Moneda.dolares);
                }
                else
                {
                    tb_nombre.Value = equipo.nombre;
                    ddl_categorias.SelectedValue = equipo.id_categoria.ToString();
                    tb_notas_equipo.Value = equipo.notas;
                    chk_out.Checked = equipo.OUT;

                    if (Directory.Exists(pathImagenesDisco + equipo.id_equipo.ToString()))
                    {
                        if (File.Exists(pathImagenesDisco + equipo.id_equipo + "\\Original.jpg"))
                        {//Si no existe la imagen temporal pero si la original, la cargo
                            img_cuenta.ImageUrl = "~/img/Equipos/" + equipo.id_equipo + "/Original.jpg";
                        }
                        else
                        {//Si no existe la imagen temporal y tampoco la original, cargo la default
                            img_cuenta.ImageUrl = "~/img/Equipos/add.png";
                        }
                    }
                    else
                    {//Si no existe la carpeta del usuario directamente cargo la imagen de default
                        img_cuenta.ImageUrl = "~/img/Equipos/add.png";
                    }

                    int mes = DateTime.Today.Month;
                    int anio = DateTime.Today.Year;

                    var items = (from ii in equipo.Items_por_amortizar
                                 select new
                                 {
                                     id_parte = ii.id_item,
                                     nombre_parte = ii.nombre,
                                     costo_cero = ii.costo_cero_km_uss,
                                     porcentaje_usado = ii.porcentaje_usado,
                                     porcentaje_valor_residual = ii.porcentaje_valor_recidual,
                                     valor_por_amortizar = ii.valor_por_amortizar,
                                     meses_por_amortizar = ii.meses_por_amortizar,
                                     periodo_alta_anio = ii.periodo_alta_anio,
                                     periodo_alta_mes = ii.periodo_alta_mes,
                                     costo_mensual = ii.costo_mensual,
                                     meses_amortizados = ii.Periodos_amortizados(mes, anio),
                                     restan_amortizar = ii.Restan_por_amortizar(mes, anio)
                                 }).ToList();

                    var items_formateados = (from ii in items
                                             select new
                                             {
                                                 id_parte = ii.id_parte,
                                                 nombre_parte = ii.nombre_parte,
                                                 costo_cero = Cadena.Formato_moneda(ii.costo_cero, Cadena.Moneda.dolares),
                                                 porcentaje_usado = Cadena.Formato_porcentaje(ii.porcentaje_usado),
                                                 porcentaje_valor_residual = Cadena.Formato_porcentaje(ii.porcentaje_valor_residual),
                                                 valor_por_amortizar = Cadena.Formato_moneda(ii.valor_por_amortizar, Cadena.Moneda.dolares),
                                                 meses_por_amortizar = ii.meses_por_amortizar,
                                                 costo_mensual = Cadena.Formato_moneda(ii.costo_mensual, Cadena.Moneda.dolares),
                                                 periodo_alta = ii.periodo_alta_mes.ToString() + "/" + ii.periodo_alta_anio.ToString(),
                                                 meses_amortizados = ii.meses_amortizados,
                                                 restan_amortizar = ii.restan_amortizar
                                             }).ToList();

                    gv_partes.DataSource = items_formateados;
                    gv_partes.DataBind();

                    gv_partes.Font.Size = new FontUnit("11");

                    lbl_costo_total_0km.Text = Cadena.Formato_moneda(items.Sum(ii => ii.costo_cero), Cadena.Moneda.dolares);
                    lbl_costo_mensual.Text = Cadena.Formato_moneda(items.Where(x => x.restan_amortizar > 0).Sum(ii => ii.costo_mensual), Cadena.Moneda.dolares);
                    lbl_valor_por_amortizar.Text = Cadena.Formato_moneda(items.Where(x => x.restan_amortizar > 0).Sum(ii => ii.valor_por_amortizar), Cadena.Moneda.dolares);
                }
            }
        }
        public resumen_equipo_anio(int anio, int id_equipo)
        {
            using (var cxt = new Model1Container())
            {
                foreach (Item_ingreso_egreso concepto in cxt.Items_ingresos_egresos)
                {
                    equipo = cxt.Equipos.First(ee => ee.id_equipo == id_equipo);
                    anio_resumen = anio;

                    //if ((equipo.EsTrabajo.HasValue && equipo.EsTrabajo.Value == true && concepto.mostrar_en_trabajo.HasValue && concepto.mostrar_en_trabajo.Value == true) ||
                    //(equipo.EsTrabajo.HasValue && equipo.EsTrabajo.Value == false && concepto.mostrar_en_equipo.HasValue && concepto.mostrar_en_equipo.Value == true))
                    //{

                        decimal total_concepto_anio = 0;
                        decimal meses_cargados_anio = 0;

                        for (int i = 0; i < 12; i++)
                        {
                            Ingreso_egreso_mensual_equipo valor_equipo_mes = cxt.Ingresos_egresos_mensuales_equipos.FirstOrDefault(x => x.id_equipo == id_equipo && x.mes == i + 1 && x.anio == anio);
                            if (valor_equipo_mes != null)
                            {
                                Valor_mes vm = valor_equipo_mes.Valores_meses.FirstOrDefault(ii => ii.id_item == concepto.id_item && ii.id_ingreso_egreso_mensual == valor_equipo_mes.id_ingreso_egreso_mensual);
                                if (vm != null)
                                {

                                    Valores_anio.Add(new valor_item_mes() { id_concepto = concepto.id_item, agrupacion = ((agrupaciones)i + 1), valor = vm.valor });
                                    total_concepto_anio += vm.valor;
                                    meses_cargados_anio++;
                                }
                                else
                                {
                                    Valores_anio.Add(new valor_item_mes() { id_concepto = concepto.id_item, agrupacion = ((agrupaciones)i + 1), valor = 0 });
                                }
                            }
                            else
                            {
                                Valores_anio.Add(new valor_item_mes() { id_concepto = concepto.id_item, agrupacion = ((agrupaciones)i + 1), valor = 0 });
                            }
                        }

                        decimal promedio = meses_cargados_anio > 0 ? total_concepto_anio / meses_cargados_anio : 0;
                        Valores_anio.Add(new valor_item_mes() { id_concepto = concepto.id_item, agrupacion = agrupaciones.total_anio, valor = total_concepto_anio });
                        Valores_anio.Add(new valor_item_mes() { id_concepto = concepto.id_item, agrupacion = agrupaciones.promedio_mensual, valor = promedio });
                    //}
                }
            }
        }