protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e)
        {
            string str_id_categoria = Request.QueryString["cat"];
            string str_mes = Request.QueryString["m"];
            string str_anio = Request.QueryString["a"];

            int id_categoria = Convert.ToInt32(str_id_categoria);
            int mes = Convert.ToInt32(str_mes);
            int anio = Convert.ToInt32(str_anio);

            int id_item = Convert.ToInt32(hidden_id_item_io.Value);
            int id_detalle = Convert.ToInt32(hidden_id_item_por_eliminar.Value);

            if (hidden_equipo.Value != "Asociado a la categoria")
            {
                int id_valor_item_mes = 0;
                using (var cxt = new Model1Container())
                {
                    Detalle_valor_item_mes detalle = cxt.Detalle_valores_items_mes.First(x => x.id_detalle_valor_item_mes == id_detalle);
                    Valor_mes vm = detalle.Valor_item_mes;
                    id_valor_item_mes = vm.id;

                    Ingreso_egreso_mensual_equipo ioequipo = cxt.Ingresos_egresos_mensuales_equipos.First(x => x.id_ingreso_egreso_mensual == detalle.Valor_item_mes.id_ingreso_egreso_mensual);
                    mes = ioequipo.mes;
                    anio = ioequipo.anio;
                    cxt.Detalle_valores_items_mes.Remove(detalle);
                    cxt.SaveChanges();

                    decimal valor = vm.Detalle.Sum(x => x.monto);
                    vm.valor = valor;

                    //Accesorios hs extra
                    if (vm.Item.nombre == "Horas Extra Chofer" && vm.Item.Padre.nombre == "Costos Variables")
                    {
                        int id_item_impuesto = cxt.Items_ingresos_egresos.First(x => x.nombre == "Accesorios Hs Extra 24% (1/12x2)" && x.Padre.nombre == "Costos Variables").id_item;
                        Valor_mes vm_impuesto = cxt.Valores_meses.FirstOrDefault(ii => ii.id_ingreso_egreso_mensual == vm.id_ingreso_egreso_mensual && ii.id_item == id_item_impuesto);

                        Detalle_valor_item_mes detalle_impuesto = new Detalle_valor_item_mes();
                        detalle_impuesto.fecha = new DateTime(ioequipo.anio, ioequipo.mes, 1);
                        detalle_impuesto.descripcion = "Calculado automáticamente";
                        detalle_impuesto.monto = valor * (Convert.ToDecimal(-5) / Convert.ToDecimal(100));

                        if (vm_impuesto.Detalle.Count > 1)
                        {
                            vm_impuesto.Detalle.Clear();
                            cxt.SaveChanges();
                        }

                        if (vm_impuesto.Detalle.Count == 0)
                        {
                            vm_impuesto.Detalle.Add(detalle_impuesto);
                            cxt.SaveChanges();
                        }
                        else
                        {
                            vm_impuesto.Detalle.First().monto = detalle_impuesto.monto;
                            cxt.SaveChanges();
                        }
                    }
                }

            }
            else
            {
                int id_valor_item_mes = 0;
                using (var cxt = new Model1Container())
                {
                    Detalle_valor_item_mes_categoria detalle = cxt.Detalle_valor_item_meses_categoria.First(x => x.id_detalle_valor_item_mes_categoria == id_detalle);
                    Valor_mes_categoria vm = detalle.Valor_mes_categoria;
                    id_valor_item_mes = vm.id_valor_mes_categoria_item;

                    Aux_total_categoria_mes iocategoria = cxt.Aux_total_categoria_meses.First(x => x.id_aux_total_categoria_mes == detalle.Valor_mes_categoria.id_aux_total_categoria_mes);
                    mes = iocategoria.mes;
                    anio = iocategoria.anio;
                    cxt.Detalle_valor_item_meses_categoria.Remove(detalle);
                    cxt.SaveChanges();

                    decimal valor = vm.Detalle.Sum(x => x.monto);
                    vm.valor = valor;

                    //Accesorios hs extra
                    if (vm.Item_ingreso_egreso.nombre == "Horas Extra Chofer" && vm.Item_ingreso_egreso.Padre.nombre == "Costos Variables")
                    {
                        int id_item_impuesto = cxt.Items_ingresos_egresos.First(x => x.nombre == "Accesorios Hs Extra 24% (1/12x2)" && x.Padre.nombre == "Costos Variables").id_item;
                        Valor_mes_categoria vm_impuesto = cxt.Valor_mes_categorias.FirstOrDefault(ii => ii.id_aux_total_categoria_mes == vm.id_aux_total_categoria_mes && ii.id_item == id_item_impuesto);

                        Detalle_valor_item_mes_categoria detalle_impuesto = new Detalle_valor_item_mes_categoria();
                        detalle_impuesto.fecha = new DateTime(iocategoria.anio, iocategoria.mes, 1);
                        detalle_impuesto.descripcion = "Calculado automáticamente";
                        detalle_impuesto.monto = valor * (Convert.ToDecimal(-5) / Convert.ToDecimal(100));

                        if (vm_impuesto.Detalle.Count > 1)
                        {
                            vm_impuesto.Detalle.Clear();
                            cxt.SaveChanges();
                        }

                        if (vm_impuesto.Detalle.Count == 0)
                        {
                            vm_impuesto.Detalle.Add(detalle_impuesto);
                            cxt.SaveChanges();
                        }
                        else
                        {
                            vm_impuesto.Detalle.First().monto = detalle_impuesto.monto;
                            cxt.SaveChanges();
                        }
                    }
                }
            }

            div_alert.Visible = true;
            Ver_editar_valores_mes(id_item);
        }
        protected void btn_agregar_detalle_ServerClick(object sender, EventArgs e)
        {
            string str_id_categoria = Request.QueryString["cat"];
            string str_mes = Request.QueryString["m"];
            string str_anio = Request.QueryString["a"];

            int id_categoria = Convert.ToInt32(str_id_categoria);
            int mes = Convert.ToInt32(str_mes);
            int anio = Convert.ToInt32(str_anio);

            int id_valor_item_mes = Convert.ToInt32(hidden_id_valor_mes.Value);
            int id_detalle = Convert.ToInt32(hidden_id_detalle_01.Value);
            int id_item = Convert.ToInt32(hidden_id_item_01.Value);
            hidden_id_detalle_01.Value = "0";
            Validate();
            if (IsValid)
            {
                using (var cxt = new Model1Container())
                {
                    if (ddl_equipo.SelectedItem.Text != "Asociado a la categoria")
                    {
                        Ingreso_egreso_mensual_equipo ioequipo;
                        Valor_mes vm;
                        int idEquipo = Convert.ToInt32(ddl_equipo.SelectedItem.Value);

                        ioequipo = cxt.Ingresos_egresos_mensuales_equipos.FirstOrDefault(x => x.mes == mes && x.anio == anio && x.id_equipo == idEquipo);
                        if (ioequipo == null)
                        {
                            ioequipo = new Ingreso_egreso_mensual_equipo();
                            ioequipo.anio = anio;
                            ioequipo.mes = mes;
                            ioequipo.id_equipo = idEquipo;

                            vm = new Valor_mes();
                            vm.valor = 0;
                            vm.id_item = id_item;

                            ioequipo.Valores_meses.Add(vm);

                            cxt.Ingresos_egresos_mensuales_equipos.Add(ioequipo);

                        }
                        else
                        {
                            vm = ioequipo.Valores_meses.FirstOrDefault(x => x.id_item == id_item);
                            if (vm == null)
                            {
                                vm = new Valor_mes();
                                vm.valor = 0;
                                vm.id_item = id_item;

                                ioequipo.Valores_meses.Add(vm);
                            }
                        }

                        cxt.SaveChanges();

                        ioequipo = cxt.Ingresos_egresos_mensuales_equipos.First(x => x.mes == mes && x.anio == anio && x.id_equipo == idEquipo);
                        vm = ioequipo.Valores_meses.First(x => x.id_item == id_item);

                        if (id_detalle > 0)
                        {
                            Detalle_valor_item_mes detalle = cxt.Detalle_valores_items_mes.First(x => x.id_detalle_valor_item_mes == id_detalle);
                            detalle.monto = Convert.ToDecimal(tb_detalle_monto.Text.Replace(".", ",").Replace("$", ""));
                            detalle.descripcion = tb_detalle_descripcion.Text;
                            detalle.fecha = Convert.ToDateTime(tb_detalle_fecha.Value);
                        }
                        else
                        {
                            Detalle_valor_item_mes detalle = new Detalle_valor_item_mes();
                            detalle.monto = Convert.ToDecimal(tb_detalle_monto.Text.Replace(".", ","));
                            detalle.descripcion = tb_detalle_descripcion.Text;
                            detalle.fecha = Convert.ToDateTime(tb_detalle_fecha.Value);
                            vm.Detalle.Add(detalle);
                        }

                        decimal valor = vm.Detalle.Sum(x => x.monto);
                        vm.valor = valor;

                        Item_ingreso_egreso item = cxt.Items_ingresos_egresos.First(x => x.id_item == id_item);

                        //Accesorios hs extra
                        if (item.nombre == "Horas Extra Chofer" && item.Padre.nombre == "Costos Variables")
                        {
                            int id_item_impuesto = cxt.Items_ingresos_egresos.First(x => x.nombre == "Accesorios Hs Extra 24% (1/12x2)" && x.Padre.nombre == "Costos Variables").id_item;
                            Valor_mes vm_impuesto = cxt.Valores_meses.FirstOrDefault(ii => ii.id_ingreso_egreso_mensual == vm.id_ingreso_egreso_mensual && ii.id_item == id_item_impuesto);

                            vm_impuesto = new Valor_mes();
                            vm_impuesto.valor = 0;
                            vm_impuesto.id_item = id_item_impuesto;

                            ioequipo.Valores_meses.Add(vm);

                            Detalle_valor_item_mes detalle_impuesto = new Detalle_valor_item_mes();
                            detalle_impuesto.fecha = new DateTime(ioequipo.anio, ioequipo.mes, 1);
                            detalle_impuesto.descripcion = "Calculado automáticamente";
                            detalle_impuesto.monto = valor * (Convert.ToDecimal(-5) / Convert.ToDecimal(100));

                            if (vm_impuesto.Detalle.Count > 1)
                            {
                                vm_impuesto.Detalle.Clear();
                                cxt.SaveChanges();
                            }

                            if (vm_impuesto.Detalle.Count == 0)
                            {
                                vm_impuesto.Detalle.Add(detalle_impuesto);
                                cxt.SaveChanges();
                            }
                            else
                            {
                                vm_impuesto.Detalle.First().monto = detalle_impuesto.monto;
                                cxt.SaveChanges();
                            }
                        }

                        cxt.SaveChanges();
                    }
                    else
                    {
                        Aux_total_categoria_mes iocategoria;
                        Valor_mes_categoria vm;

                        iocategoria = cxt.Aux_total_categoria_meses.FirstOrDefault(x => x.mes == mes && x.anio == anio && x.id_categoria_equipo == id_categoria);
                        if (iocategoria == null)
                        {
                            iocategoria = new Aux_total_categoria_mes();
                            iocategoria.anio = anio;
                            iocategoria.mes = mes;
                            iocategoria.id_categoria_equipo = id_categoria;

                            vm = new Valor_mes_categoria();
                            vm.valor = 0;
                            vm.id_item = id_item;

                            iocategoria.Valores_mes.Add(vm);

                            cxt.Aux_total_categoria_meses.Add(iocategoria);

                        }
                        else
                        {
                            vm = iocategoria.Valores_mes.FirstOrDefault(x => x.id_item == id_item);
                            if (vm == null)
                            {
                                vm = new Valor_mes_categoria();
                                vm.valor = 0;
                                vm.id_item = id_item;

                                iocategoria.Valores_mes.Add(vm);
                            }
                        }

                        cxt.SaveChanges();

                        iocategoria = cxt.Aux_total_categoria_meses.First(x => x.mes == mes && x.anio == anio && x.id_categoria_equipo == id_categoria);
                        vm = iocategoria.Valores_mes.First(x => x.id_item == id_item);

                        if (id_detalle > 0)
                        {
                            Detalle_valor_item_mes_categoria detalle = cxt.Detalle_valor_item_meses_categoria.First(x => x.id_detalle_valor_item_mes_categoria == id_detalle);
                            detalle.monto = Convert.ToDecimal(tb_detalle_monto.Text.Replace(".", ",").Replace("$", ""));
                            detalle.descripcion = tb_detalle_descripcion.Text;
                            detalle.fecha = Convert.ToDateTime(tb_detalle_fecha.Value);
                        }
                        else
                        {
                            Detalle_valor_item_mes_categoria detalle = new Detalle_valor_item_mes_categoria();
                            detalle.monto = Convert.ToDecimal(tb_detalle_monto.Text.Replace(".", ","));
                            detalle.descripcion = tb_detalle_descripcion.Text;
                            detalle.fecha = Convert.ToDateTime(tb_detalle_fecha.Value);
                            vm.Detalle.Add(detalle);
                        }

                        decimal valor = vm.Detalle.Sum(x => x.monto);
                        vm.valor = valor;

                        Item_ingreso_egreso item = cxt.Items_ingresos_egresos.First(x => x.id_item == id_item);

                        //Accesorios hs extra
                        if (item.nombre == "Horas Extra Chofer" && item.Padre.nombre == "Costos Variables")
                        {
                            int id_item_impuesto = cxt.Items_ingresos_egresos.First(x => x.nombre == "Accesorios Hs Extra 24% (1/12x2)" && x.Padre.nombre == "Costos Variables").id_item;
                            Valor_mes_categoria vm_impuesto = cxt.Valor_mes_categorias.FirstOrDefault(ii => ii.id_aux_total_categoria_mes == vm.id_aux_total_categoria_mes && ii.id_item == id_item_impuesto);

                            vm_impuesto = new Valor_mes_categoria();
                            vm_impuesto.valor = 0;
                            vm_impuesto.id_item = id_item_impuesto;

                            iocategoria.Valores_mes.Add(vm);

                            Detalle_valor_item_mes_categoria detalle_impuesto = new Detalle_valor_item_mes_categoria();
                            detalle_impuesto.fecha = new DateTime(iocategoria.anio, iocategoria.mes, 1);
                            detalle_impuesto.descripcion = "Calculado automáticamente";
                            detalle_impuesto.monto = valor * (Convert.ToDecimal(-5) / Convert.ToDecimal(100));

                            if (vm_impuesto.Detalle.Count > 1)
                            {
                                vm_impuesto.Detalle.Clear();
                                cxt.SaveChanges();
                            }

                            if (vm_impuesto.Detalle.Count == 0)
                            {
                                vm_impuesto.Detalle.Add(detalle_impuesto);
                                cxt.SaveChanges();
                            }
                            else
                            {
                                vm_impuesto.Detalle.First().monto = detalle_impuesto.monto;
                                cxt.SaveChanges();
                            }
                        }

                        cxt.SaveChanges();
                    }

                    div_alert.Visible = true;
                }
            }

            lbl_texto_boton_agregar_editar.Text = "Agregar";

            Ver_editar_valores_mes(id_item);
        }