protected void btn_editar_concepto_ServerClick(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                try
                {
                    int id_item = 0;

                    if (int.TryParse(hidden_id_concepto.Value, out id_item))
                    {
                        Item_ingreso_egreso concepto = cxt.Items_ingresos_egresos.FirstOrDefault(ii => ii.id_item == id_item);
                        if (concepto != null)
                        {
                            concepto.nombre = txt_editar_nombre.Value;
                            concepto.descripcion = txt_editar_descripcion.Value;
                            cxt.SaveChanges();

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

            CargarConceptos();
        }
        protected void btn_guardar_ServerClick(object sender, EventArgs e)
        {
            Validate();
            if (IsValid)
            {
                using (var cxt = new Model1Container())
                {
                    Categoria_empleado categoria = new Categoria_empleado() { nombre = tb_nombre_categoria.Value, descripcion = tb_descripcion_categoria.Value };

                    cxt.Categorias_empleados.Add(categoria);

                    tb_nombre_categoria.Value = string.Empty;
                    tb_descripcion_categoria.Value = string.Empty;

                    cxt.SaveChanges();
                }

                CargarCategorias();
            }
            else
            {
                string script = string.Empty;

                script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_categoria').modal('show')});</script>";

                ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopUpError", script, false);
            }
        }
        protected void btn_guardar_ServerClick(object sender, EventArgs e)
        {
            Validate();

            if (IsValid)
            {
                using (var cxt = new Model1Container())
                {
                    DateTime fecha;
                    if (DateTime.TryParse(tb_fecha_feriado.Value, out fecha))
                    {
                        Feriado feriado = new Feriado() { fecha = fecha, descripcion = tb_descripcion.Value};

                        cxt.Feriados.Add(feriado);

                        cxt.SaveChanges();

                        tb_descripcion.Value = string.Empty;
                        tb_fecha_feriado.Value = string.Empty;
                    }
                }

                CargarFeriados();
            }
            else
            {
                string script = string.Empty;

                script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_area').modal('show')});</script>";

                ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopUpError", script, false);
            }
        }
        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();
        }
        protected void btn_aceptar_categoria_Click(object sender, EventArgs e)
        {
            Validate("agregar");
            if (IsValid)
            {
                using (var cxt = new Model1Container())
                {
                    Categoria_equipo categoria = new Categoria_equipo() { nombre = tb_nombre_categoria.Value, descripcion = tb_descripcion_categoria.Value, toma_en_cuenta_planilla_costos_horas_hombre = chk_ver_muestra.Checked };

                    cxt.Categorias_equipos.Add(categoria);

                    cxt.SaveChanges();
                }

                CargarCategorias();
            }
            else
            {
                string script = string.Empty;

                script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_categoria').modal('show')});</script>";

                ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopUpError", script, false);
            }
        }
        protected void btn_editar_empleado_ServerClick(object sender, EventArgs e)
        {
            int id_empleado = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlButton)sender).Attributes["data-id"]);

            using (var cxt = new Model1Container())
            {
                Empleado empleado = cxt.Empleados.FirstOrDefault(emp => emp.id_empleado == id_empleado);
                if (empleado != null)
                {
                    id_empleado_hidden.Value = id_empleado.ToString();
                    lbl_agregar_empleado_titulo.Text = "Editar empleado";
                    ddl_areas.SelectedValue = empleado.Area.id_area.ToString();
                    ddl_categorias.SelectedValue = empleado.Categoria.id_categoria.ToString();
                    tb_nombre_empleado.Value = empleado.nombre;
                    tb_dni_empleado.Value = empleado.dni;
                    tb_fecha_nacimiento_empleado.Value = empleado.fecha_nacimiento.ToShortDateString();
                    tb_fecha_alta_empleado.Value = empleado.fecha_alta != null ? empleado.fecha_alta.Value.ToShortDateString() : "";
                    tb_fecha_baja_empleado.Value = empleado.fecha_baja != null ? empleado.fecha_baja.Value.ToShortDateString() : "";
                }

            }

            string script = "<script language=\"javascript\"  type=\"text/javascript\">$(document).ready(function() { $('#agregar_empleado').modal('show')});</script>";
            ScriptManager.RegisterStartupScript(Page, this.GetType(), "ShowPopUp", script, false);
        }
        protected void btn_aceptar_edicion_Click(object sender, EventArgs e)
        {
            Validate("editar");
            if (IsValid)
            {
                using (var cxt = new Model1Container())
                {
                    int id_categoria = Convert.ToInt32(hidden_id_editar_categoria.Value);

                    Categoria_equipo categoria = cxt.Categorias_equipos.First(cc => cc.id_categoria == id_categoria);

                    categoria.nombre = tb_editar_nombre_categoria.Value;
                    categoria.descripcion = tb_editar_descripcion_categoria.Value;
                    categoria.toma_en_cuenta_planilla_costos_horas_hombre = chk_editar_muestra.Checked;

                    cxt.SaveChanges();
                }

                CargarCategorias();
            }
            else
            {
                string script = string.Empty;

                script = "<script language=\"javascript\" type=\"text/javascript\">$(document).ready(function() { $('#agregar_categoria').modal('show')});</script>";

                ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopUpError", script, false);
            }
        }
        private void CargarValoresDolar(int anio)
        {
            using (var cxt = new Model1Container())
            {
                var dolarMes = cxt.Valores_dolar.Where(ii => ii.anio == anio);
                for (int i = 0; i < 12; i++)
                {
                    Valor_dolar vd_mes = dolarMes.FirstOrDefault(dd => dd.mes == i + 1);

                    if (vd_mes == null)
                    {
                        vd_mes = new Valor_dolar() { mes = i + 1, anio = anio, valor = 0 };
                        cxt.Valores_dolar.Add(vd_mes);
                    }

                    TextBox tb = ((TextBox)EncontrarControl(tabla_valores_dolar_anio, "valor_mes_" + (i + 1).ToString()));
                    if (tb != null)
                    {
                        tb.Text = vd_mes.valor.ToString();
                    }

                }

                cxt.SaveChanges();
            }

            tabla_valores_dolar_anio.Visible = true;
        }
        protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e)
        {
            string datos_parte_a_eliminar = id_item_por_eliminar.Value;
            int id = Convert.ToInt32(datos_parte_a_eliminar.Split('-')[0]);
            if (id > 0)
            {
                //existe y fue guardado
                using (var cxt = new Model1Container())
                {
                    Item_por_amortizar i = cxt.Items_por_amortizar.FirstOrDefault(ii => ii.id_item == id);
                    int id_equipo = i.Equipo.id_equipo;
                    cxt.Items_por_amortizar.Remove(i);
                    cxt.SaveChanges();
                    Session["equipo"] = cxt.Equipos.First(ee => ee.id_equipo == id_equipo);
                }
            }
            else
            {
                Equipo session_equipo = Session["equipo"] as Equipo;
                string nombre_item = datos_parte_a_eliminar.Split('-')[1];
                session_equipo.Items_por_amortizar.Remove(session_equipo.Items_por_amortizar.First(ii => ii.nombre == nombre_item));
            }

            CargarValoresEquipo();
        }
        protected void btn_ver_ServerClick(object sender, EventArgs e)
        {
            int id_categoria = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlButton)sender).Attributes["data-id"]);

            using (var cxt = new Model1Container())
            {
                Categoria_empleado categoria = cxt.Categorias_empleados.First(aa => aa.id_categoria == id_categoria);

                lbl_nombre_categoria.Text = categoria.nombre;
                lbl_descripcion.Text = categoria.descripcion;

                var empleados = (from ee in cxt.Empleados
                                 where
                                     ee.fecha_baja == null &&
                                     ee.id_categoria == categoria.id_categoria
                                 select new
                                 {
                                     area_empleado = ee.Area.nombre,
                                     nombre_empleado = ee.nombre
                                 }).ToList();

                gv_empleados.DataSource = empleados;
                gv_empleados.DataBind();

            }

            MostrarPopUpCategoria();
        }
        public void Agregar_detalle(Valor_mensual item_valor, int mes, int anio, decimal monto)
        {
            using (var cxt = new Model1Container())
            {
                Ingreso_egreso_mensual_equipo iemensual = Ingresos_egresos_mensuales.FirstOrDefault(x => x.anio == anio && x.mes == mes);

                if (iemensual == null)
                {
                    iemensual = new Ingreso_egreso_mensual_equipo();
                    iemensual.id_equipo = this.id_equipo;
                    iemensual.mes = mes;
                    iemensual.anio = anio;
                    cxt.Ingresos_egresos_mensuales_equipos.Add(iemensual);
                    cxt.SaveChanges();
                }

                string nombre_item = ObtenerNombreItem(item_valor);

                if (nombre_item != "")
                {
                    Item_ingreso_egreso item = cxt.Items_ingresos_egresos.FirstOrDefault(x => x.nombre == nombre_item);
                    if (item != null)
                    {
                        Valor_mes valor_mes = iemensual.Valores_meses.FirstOrDefault(x => x.id_item == item.id_item);
                        if (valor_mes == null)
                        {
                            valor_mes = new Valor_mes();
                            valor_mes.id_ingreso_egreso_mensual = iemensual.id_ingreso_egreso_mensual;
                            valor_mes.id_item = item.id_item;
                            valor_mes.valor = 0;
                            cxt.Valores_meses.Add(valor_mes);
                            cxt.SaveChanges();
                        }

                        //aca tengo el item valor mes del
                        string descripcion_detalle = "Gastos obtenidos de planilla de gastos administrativos";

                        Detalle_valor_item_mes detalle = valor_mes.Detalle.FirstOrDefault(x => x.descripcion == descripcion_detalle);

                        if (detalle == null)
                        {
                            detalle = new Detalle_valor_item_mes();
                            detalle.id_valor_mes = valor_mes.id;
                            detalle.fecha = new DateTime(anio, mes, DateTime.DaysInMonth(anio, mes));
                            detalle.descripcion = descripcion_detalle;
                            detalle.monto = monto;
                            cxt.Detalle_valores_items_mes.Add(detalle);
                        }
                        else
                        {
                            detalle = cxt.Detalle_valores_items_mes.First(x => x.id_detalle_valor_item_mes == detalle.id_detalle_valor_item_mes);
                            detalle.monto = monto;
                        }

                        cxt.SaveChanges();
                    }
                }
            }
        }
        public resumen_categoria_anio(int anio, int id_categoria)
        {
            using (var cxt = new Model1Container())
            {
                List<Equipo> equipos_categoria = cxt.Equipos.Where(ee => ee.id_categoria == id_categoria && ee.fecha_baja == null && !ee.Generico).ToList();

                foreach (Item_ingreso_egreso concepto in cxt.Items_ingresos_egresos)
                {
                    categoria = cxt.Categorias_equipos.First(ee => ee.id_categoria == id_categoria);
                    anio_resumen = anio;

                    decimal total_concepto_anio = 0;
                    decimal meses_cargados_anio = 0;

                    for (int i = 0; i < 12; i++)
                    {
                        bool cargo_mes = false;
                        decimal valor_item = 0;

                        Aux_total_categoria_mes valor_categoria_mes = cxt.Aux_total_categoria_meses.FirstOrDefault(x => x.id_categoria_equipo == id_categoria && x.mes == i + 1 && x.anio == anio);
                        if (valor_categoria_mes != null)
                        {
                            Valor_mes_categoria vm = valor_categoria_mes.Valores_mes.FirstOrDefault(ii => ii.id_item == concepto.id_item && ii.id_aux_total_categoria_mes == valor_categoria_mes.id_aux_total_categoria_mes);
                            if (vm != null)
                            {
                                valor_item = valor_item + vm.valor;
                                total_concepto_anio += vm.valor;
                            }
                            cargo_mes = true;
                        }

                        //agregar aca tambien la suma de los distintos equipos que se encuentran en la categoria
                        foreach (Equipo equipo in equipos_categoria)
                        {
                            Ingreso_egreso_mensual_equipo valor_equipo_mes = cxt.Ingresos_egresos_mensuales_equipos.FirstOrDefault(x => x.id_equipo == 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)
                                {
                                    valor_item = valor_item + vm.valor;
                                    total_concepto_anio += vm.valor;
                                }
                                cargo_mes = true;
                            }
                        }

                        if (cargo_mes) { meses_cargados_anio++; }

                        Valores_anio.Add(new valor_item_mes() { id_concepto = concepto.id_item, agrupacion = ((agrupaciones)i + 1), valor = valor_item });
                    }

                    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 });
                }
            }
        }
        protected void btn_agregar_equipo_Click(object sender, EventArgs e)
        {
            int id_equipo = Convert.ToInt32(ddl_equipos.SelectedValue);
            decimal porcentaje = ObtenerValor(tb_porcentaje.Text) / Convert.ToDecimal(100);
            if (porcentaje > 0)
            {
                using (var cxt = new Model1Container())
                {
                    int anio = Convert.ToInt32(ddl_anio.SelectedItem.Text);
                    int mes = Convert.ToInt32(ddl_mes.SelectedItem.Value);
                    var datos_planilla = cxt.Planilla_gastos_administrativo.FirstOrDefault(x => x.anio == anio && x.mes == mes);

                    decimal porcentaje_restante = Convert.ToDecimal(1) - datos_planilla.Detalle.Sum(x => x.porcentaje);

                    if (porcentaje > porcentaje_restante)
                    {
                        porcentaje = porcentaje_restante;

                        var detalle_equipo_planilla = datos_planilla.Detalle.FirstOrDefault(x => x.id_equipo == id_equipo);

                        if (detalle_equipo_planilla == null)
                        {
                            datos_planilla.Detalle.Add(new Aux_planilla_gasto_administracion() { id_equipo = id_equipo, porcentaje = porcentaje });
                        }
                        else
                        {
                            detalle_equipo_planilla.porcentaje = porcentaje;
                        }

                        cxt.SaveChanges();

                        MessageBox.Show(this, "El porcentaje exede lo que resta para llegar a 100%, se asignará " + porcentaje_restante.ToString("P2"), MessageBox.Tipo_MessageBox.Warning);
                    }
                    else
                    {
                        var detalle_equipo_planilla = datos_planilla.Detalle.FirstOrDefault(x => x.id_equipo == id_equipo);

                        if (detalle_equipo_planilla == null)
                        {
                            datos_planilla.Detalle.Add(new Aux_planilla_gasto_administracion() { id_equipo = id_equipo, porcentaje = porcentaje });
                        }
                        else
                        {
                            detalle_equipo_planilla.porcentaje = porcentaje;
                        }

                        cxt.SaveChanges();
                    }
                }

                CargarDatos();
            }
            else
            {
                MessageBox.Show(this, "El porcentaje debe ser mayor a cero y menor o igual al máximo disponible", MessageBox.Tipo_MessageBox.Warning);
            }
        }
 public static void ActualizarValor(int mes, int anio, decimal valor)
 {
     using (var cxt = new Model1Container())
     {
         Valor_dolar vd_mes = cxt.Valores_dolar.FirstOrDefault(dd => dd.mes == mes && dd.anio == anio);
         vd_mes.valor = valor;
         cxt.SaveChanges();
     }
 }
        private void CargarDatos(Usuario usu)
        {
            if (usu != null)
            {
                var cxt = new Model1Container();

                lbl_ApyNom.Text = usu.nombre;
                imagen_usuario.Usuario = usu;
            }
        }
        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_aceptar_eliminacion_Click(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                int id_empleado = Convert.ToInt32(id_empleado_por_eliminar.Value);

                Empleado empleado = cxt.Empleados.First(ee => ee.id_empleado == id_empleado);
                empleado.fecha_baja = DateTime.Today;

                cxt.SaveChanges();
                CargarEmpleados();
            }
        }
        protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e)
        {
            int id_feriado = Convert.ToInt32(id_item_por_eliminar.Value);

            using (var cxt = new Model1Container())
            {
                Feriado feriado = cxt.Feriados.First(ff => ff.id_feriado == id_feriado);

                cxt.Feriados.Remove(feriado);
                cxt.SaveChanges();
            }

            CargarFeriados();
        }
        public static decimal Obtener(int mes, int anio)
        {
            decimal ret = 0;

            using (var cxt = new Model1Container())
            {
                Valor_dolar valor_dolar_mes = cxt.Valores_dolar.FirstOrDefault(x => x.mes == mes && x.anio == anio);
                if (valor_dolar_mes != null)
                {
                    ret = valor_dolar_mes.valor;
                }
            }

            return ret;
        }
        protected void btn_ver_Click(object sender, EventArgs e)
        {
            int id_feriado = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlButton)sender).Attributes["data-id"]);

            using (var cxt = new Model1Container())
            {
                Feriado feriado = cxt.Feriados.First(ff => ff.id_feriado == id_feriado);

                lbl_fecha.Text = feriado.fecha.ToLongDateString();
                lbl_descripcion.Text = feriado.descripcion;

            }

            MostrarPopUpFeriado();
        }
        protected void btn_editar_sueldo_empleado_Click(object sender, EventArgs e)
        {
            int id_empleado = Convert.ToInt32(id_empleado_hidden.Value);
            int mes = Convert.ToInt32(ddl_mes.SelectedItem.Value);
            int anio = Convert.ToInt32(ddl_anio.SelectedItem.Value);

            decimal sueldo = 0;
            decimal.TryParse(tb_sueldo_empleado.Value, out sueldo);

            using (var cxt = new Model1Container())
            {
                Resumen_mes_empleado rme = cxt.Resumenes_meses_empleados.FirstOrDefault(rrmmee => rrmmee.id_empleado == id_empleado && rrmmee.mes == mes && rrmmee.anio == anio);
                if (rme != null)
                {
                    rme.Sueldo = sueldo;
                }
                else
                {
                    rme = new Resumen_mes_empleado()
                    {
                        id_empleado = id_empleado,
                        mes = mes,
                        anio = anio,
                        dias_laborables = 0,
                        dias_ausente = 0,
                        dias_presente = 0,
                        dias_por_cargar = 0,
                        dias_out = 0,
                        dias_presentes_en_dias_no_laborables = 0,
                        total_horas_normales = "00:00",
                        total_horas_extra_50 = "00:00",
                        total_horas_extra_100 = "00:00",
                        Sueldo = sueldo,
                        total_horas_ausente = "00:00",
                        total_horas_guardia = "00:00",
                        total_horas_varios_taller = "00:00"
                    };

                    cxt.Resumenes_meses_empleados.Add(rme);
                }

                cxt.SaveChanges();
            }

            tb_sueldo_empleado.Value = string.Empty;
            Cargar_busqueda();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Usuario usuariologueado = Session["UsuarioLogueado"] as Usuario;
                if (usuariologueado == null)
                {
                    Response.Redirect("~/Default.aspx?mode=session_end");
                }
                else
                {
                    if (usuariologueado.perfil != perfil_usuario.Admin && usuariologueado.perfil != perfil_usuario.Jefe)
                    {
                        Response.Redirect("~/Default.aspx?mode=trucho");
                    }
                }

                Cargar_ddls();

                string str_id_equipo = Request.QueryString["eq"];
                string str_edita = Request.QueryString["ed"];
                string str_mes = Request.QueryString["m"];
                string str_anio = Request.QueryString["a"];

                if (str_id_equipo != null)
                {
                    ddl_equipo.SelectedValue = str_id_equipo;
                    ddl_mes.SelectedValue = str_mes;
                    ddl_anio.SelectedValue = str_anio;

                    Estado_busqueda(false);
                    using (var cxt = new Model1Container())
                    {
                        int id_equipo = Convert.ToInt32(str_id_equipo);
                        int anio = Convert.ToInt32(str_anio);
                        int mes = Convert.ToInt32(str_mes);

                        CrearMostrarTabla(id_equipo, mes, anio);
                    }
                }
                else
                {
                    Estado_busqueda(true);
                }
            }
        }
        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_aplicar_Click(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                var equipos = cxt.Equipos.Where(x => !x.Generico && x.fecha_baja == null);
                int anio = Convert.ToInt32(ddl_anio.SelectedItem.Text);
                int mes = Convert.ToInt32(ddl_mes.SelectedItem.Value);
                var datos_planilla = cxt.Planilla_gastos_administrativo.FirstOrDefault(x => x.anio == anio && x.mes == mes);

                if (datos_planilla == null)
                {
                    datos_planilla = new Planilla_gasto_administrativo();
                    datos_planilla.mes = mes;
                    datos_planilla.anio = anio;
                    datos_planilla.monto_telefonia_celular = 0;
                    datos_planilla.monto_sueldos = 0;
                    datos_planilla.monto_honorarios_sistema = 0;
                    datos_planilla.monto_honorarios_contables = 0;
                    datos_planilla.monto_papeleria = 0;
                    datos_planilla.monto_otros = 0;
                    cxt.Planilla_gastos_administrativo.Add(datos_planilla);
                    cxt.SaveChanges();
                }

                datos_planilla.monto_telefonia_celular = ObtenerValor(tb_telefonia_celular.Text);
                datos_planilla.monto_sueldos = ObtenerValor(tb_sueldos_administracion.Text);
                datos_planilla.monto_honorarios_sistema = ObtenerValor(tb_honorarios_sistema.Text);
                datos_planilla.monto_honorarios_contables = 0;//ObtenerValor(tb_honorarios_contables.Text);
                datos_planilla.monto_papeleria = ObtenerValor(tb_papeleria_libreria.Text);
                datos_planilla.monto_otros = ObtenerValor(tb_otros.Text);

                cxt.SaveChanges();

                tb_telefonia_celular.Text = Cadena.Formato_moneda(datos_planilla.monto_telefonia_celular, Cadena.Moneda.pesos);
                tb_sueldos_administracion.Text = Cadena.Formato_moneda(datos_planilla.monto_sueldos, Cadena.Moneda.pesos);
                //tb_honorarios_contables.Text = Cadena.Formato_moneda(datos_planilla.monto_honorarios_contables, Cadena.Moneda.pesos);
                tb_honorarios_sistema.Text = Cadena.Formato_moneda(datos_planilla.monto_honorarios_sistema, Cadena.Moneda.pesos);
                tb_papeleria_libreria.Text = Cadena.Formato_moneda(datos_planilla.monto_papeleria, Cadena.Moneda.pesos);
                tb_otros.Text = Cadena.Formato_moneda(datos_planilla.monto_otros, Cadena.Moneda.pesos);
            }

            CargarDatos();
        }
        protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e)
        {
            int id_categoria = Convert.ToInt32(id_item_por_eliminar.Value);

            using (var cxt = new Model1Container())
            {
                Categoria_equipo categoria = cxt.Categorias_equipos.First(aa => aa.id_categoria == id_categoria);

                if (categoria.Equipos.Count > 0)
                {
                    MessageBox.Show(this, "No se puede eliminar la categoria ya que la misma aún tiene equipos asociados", MessageBox.Tipo_MessageBox.Danger, "Imposible eliminar!");
                }
                else
                {
                    cxt.Categorias_equipos.Remove(categoria);
                    cxt.SaveChanges();
                }
            }

            CargarCategorias();
        }
        protected void btn_aceptar_eliminacion_Click(object sender, EventArgs e)
        {
            int id_area = Convert.ToInt32(id_item_por_eliminar.Value);

            using (var cxt = new Model1Container())
            {
                Area area = cxt.Areas.First(aa => aa.id_area == id_area);

                if (area.Empleados.Where(ee => ee.fecha_baja == null).Count() > 0)
                {
                    MessageBox.Show(this, "No se puede eliminar el área ya que la misma aún tiene empleados", MessageBox.Tipo_MessageBox.Danger, "Imposible eliminar!");
                }
                else
                {
                    cxt.Areas.Remove(area);
                    cxt.SaveChanges();
                }
            }

            CargarAreas();
        }
        protected void btn_aceptar_imagen_Click(object sender, EventArgs e)
        {
            Usuario usr = Session["UsuarioLogueado"] as Usuario;
            HttpPostedFile file = archivo_imagen.PostedFile;

            using (var cxt = new Model1Container())
            {
                Usuario usuario_cxt = cxt.Usuarios.First(aa => aa.id == usr.id);

                if (file != null && file.ContentLength > 0)
                {
                    if (file.ContentLength > 3145728)
                    {
                        MessageBox("El archivo a subir no debe superar los 3mb.");
                    }
                    else
                    {
                        string path_Destino = pathImagenesDisco + usuario_cxt.id.ToString() + "\\Original.jpg";

                        if (File.Exists(path_Destino))
                        {
                            File.Delete(path_Destino);
                        }

                        if (!Directory.Exists(pathImagenesDisco + usuario_cxt.id.ToString()))
                        {
                            Directory.CreateDirectory(pathImagenesDisco + usuario_cxt.id.ToString());
                        }

                        file.SaveAs(path_Destino);
                    }

                    imagen_usuario.Usuario = usuario_cxt;
                }
                else
                {
                    MessageBox("No hay seleccionada ninguna imagen");
                }
            }
        }
        protected void btn_ingresar_Click(object sender, EventArgs e)
        {
            using (var cxt = new Model1Container())
            {
                if (cxt.Database.CreateIfNotExists())
                {
                    InicializarDB();
                }

                string clave = Cripto.Encriptar(inputPassword.Value);
                Usuario usr = cxt.Usuarios.FirstOrDefault(uu => uu.user == inputUsr.Value && uu.pass == clave);
                if (usr != null)
                {
                    Session["UsuarioLogueado"] = usr;
                    FormsAuthentication.RedirectFromLoginPage(usr.nombre, false);
                }
                else
                {
                    MessageBox.Show(this, "Usuario o contraseña incorrecta!", MessageBox.Tipo_MessageBox.Danger, "Datos de acceso incorrectos");
                }

            }
        }
        protected void btn_aceptar_reseteo_de_clave_Click(object sender, EventArgs e)
        {
            Usuario usuariologueado = Session["UsuarioLogueado"] as Usuario;
            if (usuariologueado == null)
            {
                Response.Redirect("~/Default.aspx?mode=session_end");
            }

            using (var cxt = new Model1Container())
            {
                Usuario usr = cxt.Usuarios.FirstOrDefault(uu => uu.id == usuariologueado.id);
                if (tb_pass1.Value == tb_pass2.Value)
                {
                    usr.pass = Cripto.Encriptar(tb_pass1.Value);
                    cxt.SaveChanges();

                    CargarDatosUsuario(usr);
                }
                else
                {
                    MessageBox("Las claves no coinciden!");
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session.Clear();

                switch (Request.QueryString["mode"])
                {
                    case "session_end":
                        MessageBox.Show(this, "Su sesión ha caducado", MessageBox.Tipo_MessageBox.Default, "Ups!");
                        break;
                    case "trucho":
                        Response.Write("<script>" +
                          "alert('Su perfil tiene definidos los permisos para ingresar en ese directorio.');" +
                          "location.href='Default.aspx';" + "</script>");
                        break;
                    default:
                        Session["CXT"] = new Model1Container();
                        Session["UsuarioLogueado"] = null;
                        inputUsr.Focus();
                        break;
                }
            }
        }