コード例 #1
0
        public ActionResult FinalizarEstadoFuerza(int id_estado_fuerza)
        {
            Estado_Fuerza estadofuerza = db.Estado_Fuerza.SingleOrDefault(e => e.id_estado_fuerza == id_estado_fuerza && e.activo && !e.eliminado);

            if (estadofuerza == null)
            {
                return(HttpNotFound());
            }
            estadofuerza.activo                  = false;
            estadofuerza.fecha_finalizacion      = estadofuerza.fecha_modificacion = DateTime.Now;
            estadofuerza.id_usuario_finalizacion = estadofuerza.id_usuario_modificacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario;
            //using (DbContextTransaction tran = db.Database.BeginTransaction())
            {
                try
                {
                    db.Entry(estadofuerza).State = EntityState.Modified;
                    db.SaveChanges();
                    db.Finalizar_Dia(estadofuerza.id_estado_fuerza);
                    //tran.Commit();
                    return(RedirectToAction("EstadoFuerza"));
                }
                catch
                {
                    //tran.Rollback();
                    ContextMessage msg = new ContextMessage(ContextMessage.Error, "Error durante la conexión con el servidor. Cambios no efectuados.");
                    msg.ReturnUrl = Url.Action("EstadoFuerza");
                    TempData[User.Identity.Name] = msg;
                    return(RedirectToAction("Mensaje"));
                }
            }
        }
コード例 #2
0
 public ActionResult CrearEstadoFuerza(Estado_Fuerza estado_fuerza)
 {
     if (db.Estado_Fuerza.Where(f => (f.fecha == estado_fuerza.fecha && !f.eliminado) || f.activo).Count() > 0)
     {
         ContextMessage msg = new ContextMessage(ContextMessage.Error, "El día seleccionado ya esta almacenado en el Estado de Fuerza.");
         msg.ReturnUrl = Url.Action("EstadoFuerza");
         TempData[User.Identity.Name] = msg;
         return(RedirectToAction("Mensaje"));
     }
     estado_fuerza.activo              = true;
     estado_fuerza.eliminado           = false;
     estado_fuerza.fecha_creacion      = DateTime.Now;
     estado_fuerza.id_usuario_creacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario;
     try
     {
         db.Estado_Fuerza.Add(estado_fuerza);
         db.SaveChanges();
         return(RedirectToAction("EstadoFuerza"));
     }
     catch
     {
         ContextMessage msg = new ContextMessage(ContextMessage.Error, "Error durante la conexión con el servidor. Cambios no efectuados.");
         msg.ReturnUrl = Url.Action("EstadoFuerza");
         TempData[User.Identity.Name] = msg;
         return(RedirectToAction("Mensaje"));
     }
 }
コード例 #3
0
        public void ActualizarEmpleados(Estado_Fuerza estadofuerza)
        {
            var estadofuerzadetalle = estadofuerza.Estado_Fuerza_Detalle.Where(e => e.activo && !e.eliminado);

            foreach (var item in estadofuerzadetalle)
            {
                //Actualizar ubicacion del empleado en el contrato
                var contrato = db.Contratacion.Where(c => c.activo && !c.eliminado && c.id_empleado == item.id_empleado);
                if (contrato.Count() > 1)
                {
                    contrato.First().id_ubicacion = item.id_ubicacion;
                    //Dar de baja al empleado
                    if (item.id_situacion == (int)Catalogos.Situacion.Ausente)
                    {
                        var estado_fuerza = db.Estado_Fuerza_Detalle.Where(e => e.activo && !e.eliminado && e.id_empleado == item.id_empleado && e.id_situacion == (int)Catalogos.Situacion.Ausente);
                        if (estado_fuerza.Count() >= 2)
                        {
                            contrato.First().id_estado_empleado = (int)Catalogos.Estado_Empleado.Baja;
                            contrato.First().id_motivo_baja     = (int)Catalogos.Motivo_Baja.Ausencias;
                            contrato.First().razon_baja         = "Baja automática.";
                        }
                    }
                    db.Entry(contrato.First()).State = EntityState.Modified;
                }
            }
        }
コード例 #4
0
        // GET: EstadoFuerza/Estado_Fuerza_Detalle
        public ActionResult Index()
        {
            Estado_Fuerza ef = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.fecha_finalizacion == null);

            if (ef == null)
            {
                return(HttpNotFound());
            }
            return(View(ef));
        }
コード例 #5
0
        public ActionResult CargarArchivo()
        {
            Estado_Fuerza estado_fuerza = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.fecha_finalizacion == null);

            if (estado_fuerza == null)
            {
                ContextMessage msg = new ContextMessage(ContextMessage.Info, "No existe un Estado de Fuerza activo en el sistema.");
                msg.ReturnUrl = Url.Action("Index", "Home");
                TempData[User.Identity.Name] = msg;
                return(RedirectToAction("Mensaje"));
            }
            return(View(estado_fuerza));
        }
コード例 #6
0
        public List <ResultadoCargaEF> VerificarDuplicados(List <ResultadoCargaEF> estado_fuerza_detalle)
        {
            List <ResultadoCargaEF> nuevo_resultado = new List <ResultadoCargaEF>();
            Estado_Fuerza           ef = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.fecha_finalizacion == null);

            foreach (var registro in estado_fuerza_detalle.Where(r => r.correcto))
            {
                int id_empleado = int.Parse(registro.id_empleado);
                var detalle_ef  = ef.Estado_Fuerza_Detalle.SingleOrDefault(e => e.activo && !e.eliminado && e.id_empleado == id_empleado);
                if (detalle_ef == null)
                {
                    nuevo_resultado.Add(registro);
                }
            }
            return(nuevo_resultado);
        }
コード例 #7
0
        public ActionResult EstadoFuerza()
        {
            Estado_Fuerza estado_fuerza = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.fecha_finalizacion == null);
            int           estados       = 0;

            if (estado_fuerza != null)
            {
                estados = estado_fuerza.Estado_Fuerza_Detalle.Count(x => x.activo && !x.eliminado);
            }

            int contratos = db.Contratacion.Count(x => x.activo && !x.eliminado);

            ViewBag.estados   = estados;
            ViewBag.contratos = contratos;
            return(View(estado_fuerza));
        }
コード例 #8
0
        public ActionResult Edit(Estado_Fuerza_Detalle estado_Fuerza_Detalle, DateTime fecha)
        {
            ModelState.Clear();
            Estado_Fuerza ef = db.Estado_Fuerza.SingleOrDefault(e => e.fecha == fecha && !e.eliminado);

            if (ef == null)
            {
                return(HttpNotFound());
            }
            //Validar que el registro no exista en el Estado de Fuerza
            var detalle_ef = ef.Estado_Fuerza_Detalle.SingleOrDefault(
                e => e.activo && !e.eliminado && e.id_empleado == estado_Fuerza_Detalle.id_empleado &&
                e.id_estado_fuerza_detalle != estado_Fuerza_Detalle.id_estado_fuerza_detalle);

            if (detalle_ef != null)
            {
                ModelState.AddModelError("", "El registro ya existe en el Estado de Fuerza actual.");
            }
            if (ModelState.IsValid)
            {
                Estado_Fuerza_Detalle efd = db.Estado_Fuerza_Detalle.SingleOrDefault(e => e.activo && e.id_estado_fuerza_detalle == estado_Fuerza_Detalle.id_estado_fuerza_detalle);
                if (efd == null)
                {
                    return(HttpNotFound());
                }
                efd.id_estado_fuerza        = ef.id_estado_fuerza;
                efd.fecha                   = ef.fecha;
                efd.id_empleado             = estado_Fuerza_Detalle.id_empleado;
                efd.id_situacion            = estado_Fuerza_Detalle.id_situacion;
                efd.id_cat_tipo_agente      = estado_Fuerza_Detalle.id_cat_tipo_agente;
                efd.id_ubicacion            = estado_Fuerza_Detalle.id_ubicacion;
                efd.observacion             = estado_Fuerza_Detalle.observacion;
                efd.fecha_modificacion      = DateTime.Now;
                efd.id_usuario_modificacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario;
                db.Entry(efd).State         = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.id_situacion       = new SelectList(db.Situacion.Where(e => !e.eliminado).Select(e => new { e.id_situacion, nombre = e.id_situacion.ToString() + " - " + e.nombre }), "id_situacion", "nombre", estado_Fuerza_Detalle.id_situacion);
            ViewBag.id_cat_tipo_agente = new SelectList(db.Cat_Tipos_Agente.Where(e => !e.eliminado).Select(e => new { e.id_cat_tipo_agente, nombre = e.id_cat_tipo_agente.ToString() + " - " + e.nombre }), "id_cat_tipo_agente", "nombre", estado_Fuerza_Detalle.id_cat_tipo_agente);
            ViewBag.id_ubicacion       = new SelectList(db.Ubicaciones.Where(e => !e.eliminado).Select(e => new { e.id_ubicacion, direccion = e.id_ubicacion.ToString() + " - " + e.direccion }), "id_ubicacion", "direccion", estado_Fuerza_Detalle.id_ubicacion);
            return(View(estado_Fuerza_Detalle));
        }
コード例 #9
0
        public void GuardarRegistros(IEnumerable <ResultadoCargaEF> estado_fuerza_detalle)
        {
            Estado_Fuerza ef         = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.fecha_finalizacion == null);
            int           id_usuario = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario;

            foreach (var item in estado_fuerza_detalle)
            {
                Estado_Fuerza_Detalle efd = new Estado_Fuerza_Detalle();
                efd.activo              = true; efd.eliminado = false;
                efd.fecha_creacion      = DateTime.Now;
                efd.fecha               = ef.fecha;
                efd.id_usuario_creacion = id_usuario;
                efd.id_empleado         = Convert.ToInt32(item.id_empleado);
                efd.id_ubicacion        = Convert.ToInt32(item.id_ubicacion);
                efd.id_situacion        = Convert.ToInt32(item.id_situacion);
                efd.id_cat_tipo_agente  = Convert.ToInt32(item.id_cat_tipo_agente);
                efd.observacion         = item.observacion;
                efd.id_estado_fuerza    = ef.id_estado_fuerza;
                db.Estado_Fuerza_Detalle.Add(efd);
            }
            db.SaveChanges();
        }
コード例 #10
0
        public ActionResult Create(Estado_Fuerza_Detalle estado_Fuerza_Detalle, DateTime fecha)
        {
            Estado_Fuerza ef = db.Estado_Fuerza.SingleOrDefault(e => e.fecha == fecha && !e.eliminado);

            if (ef == null)
            {
                ModelState.AddModelError("", "No existe un Estado de Fuerza para la fecha ingresada.");
            }
            else
            {
                //Validar que el registro no exista en el Estado de Fuerza
                var detalle_ef = ef.Estado_Fuerza_Detalle.SingleOrDefault(
                    e => e.activo && !e.eliminado && e.id_empleado == estado_Fuerza_Detalle.id_empleado);
                if (detalle_ef != null)
                {
                    ModelState.AddModelError("", "El registro ya existe en el Estado de Fuerza actual.");
                }
                if (ModelState.IsValid)
                {
                    estado_Fuerza_Detalle.id_estado_fuerza    = ef.id_estado_fuerza;
                    estado_Fuerza_Detalle.fecha               = ef.fecha;
                    estado_Fuerza_Detalle.activo              = true;
                    estado_Fuerza_Detalle.eliminado           = false;
                    estado_Fuerza_Detalle.fecha_creacion      = DateTime.Now;
                    estado_Fuerza_Detalle.id_usuario_creacion = Cache.DiccionarioUsuariosLogueados[User.Identity.Name].usuario.id_usuario;
                    db.Estado_Fuerza_Detalle.Add(estado_Fuerza_Detalle);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            ViewBag.fecha              = fecha.ToString("dd/MM/yyyy");
            ViewBag.id_situacion       = new SelectList(db.Situacion.Where(e => !e.eliminado).Select(e => new { e.id_situacion, nombre = e.id_situacion.ToString() + " - " + e.nombre }), "id_situacion", "nombre", estado_Fuerza_Detalle.id_situacion);
            ViewBag.id_cat_tipo_agente = new SelectList(db.Cat_Tipos_Agente.Where(e => !e.eliminado).Select(e => new { e.id_cat_tipo_agente, nombre = e.id_cat_tipo_agente.ToString() + " - " + e.nombre }), "id_cat_tipo_agente", "nombre", estado_Fuerza_Detalle.id_cat_tipo_agente);
            ViewBag.id_ubicacion       = new SelectList(db.Ubicaciones.Where(e => !e.eliminado).Select(e => new { e.id_ubicacion, direccion = e.id_ubicacion.ToString() + " - " + e.direccion }), "id_ubicacion", "direccion", estado_Fuerza_Detalle.id_ubicacion);
            return(View(estado_Fuerza_Detalle));
        }
コード例 #11
0
        public List <ResultadoCargaEF> ValidarRegistros(List <ResultadoCargaEF> estado_fuerza_detalle)
        {
            int           id_empleado, id_ubicacion, id_tipo_agente, id_situacion;
            Estado_Fuerza ef = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.fecha_finalizacion == null);

            foreach (var item in estado_fuerza_detalle)
            {
                if (!item.correcto)
                {
                    bool   correcto = true;
                    string error    = "";
                    //Codigo del Empleado
                    if (int.TryParse(item.id_empleado, out id_empleado))
                    {
                        var Empleado = db.Contratacion.SingleOrDefault(e => e.id_empleado == id_empleado && e.activo && !e.eliminado);
                        if (Empleado != null)
                        {
                            if (Empleado.id_estado_empleado != (int)Catalogos.Estado_Empleado.Alta)
                            {
                                error    = "El empleado no está de Alta.";
                                correcto = false;
                            }
                        }
                        else
                        {
                            error    = "El empleado no existe.\n";
                            correcto = false;
                        }
                    }
                    else
                    {
                        error    = "El formato del código de empleado es incorrecto.\n";
                        correcto = false;
                    }
                    //Situacion
                    if (int.TryParse(item.id_situacion, out id_situacion))
                    {
                        if (db.Situacion.SingleOrDefault(s => s.activo && !s.eliminado && s.id_situacion == id_situacion) == null)
                        {
                            error   += "Estado ingresado no reconocido.\n";
                            correcto = false;
                        }
                    }
                    else
                    {
                        error   += "El formato del estado es incorrecto.\n";
                        correcto = false;
                    }
                    //Ubicacion
                    if (int.TryParse(item.id_ubicacion, out id_ubicacion))
                    {
                        if (db.Ubicaciones.SingleOrDefault(u => u.activo && !u.eliminado && u.id_ubicacion == id_ubicacion) == null)
                        {
                            error   += "Ubicación ingresada no reconocida.\n";
                            correcto = false;
                        }
                    }
                    else
                    {
                        error   += "El formato del código de ubicación es incorrecto.\n";
                        correcto = false;
                    }
                    //Tipo de Servicio
                    if (int.TryParse(item.id_cat_tipo_agente, out id_tipo_agente))
                    {
                        if (db.Tipo_Servicio.SingleOrDefault(t => t.activo && !t.eliminado && t.id_tipo_servicio == id_tipo_agente) == null)
                        {
                            error   += "Tipo de Agente no reconocido.\n";
                            correcto = false;
                        }
                    }
                    else
                    {
                        error   += "El formato del tipo de agente es incorrecto.\n";
                        correcto = false;
                    }

                    var detalle_ef = ef.Estado_Fuerza_Detalle.SingleOrDefault(e => e.activo && !e.eliminado && e.id_empleado == id_empleado);
                    if (detalle_ef != null)
                    {
                        error   += "Ya fue almacenado este registro.";
                        correcto = false;
                    }
                    if (!String.IsNullOrEmpty(error))
                    {
                        error = error.Substring(0, error.LastIndexOf('.'));
                    }
                    //Registro analizado
                    item.error    = error;
                    item.correcto = correcto;
                }
            }
            return(estado_fuerza_detalle);
        }
コード例 #12
0
        public ActionResult Leer_Archivo(HttpPostedFileBase file, int id)
        {
            var filepath = Server.MapPath("~/Archivos/Temp/" + file.FileName);

            if (System.IO.File.Exists(filepath))
            {
                System.IO.File.Delete(filepath);
            }
            file.SaveAs(filepath);
            Estado_Fuerza estado_fuerza = db.Estado_Fuerza.SingleOrDefault(e => e.activo && !e.eliminado && e.id_estado_fuerza == id);

            if (estado_fuerza == null)
            {
                return(HttpNotFound());
            }
            var excel          = new ExcelQueryFactory(filepath);
            var worksheetNames = excel.GetWorksheetNames();

            using (DbContextTransaction tran = db.Database.BeginTransaction())
            {
                Carga_Estado_Fuerza carga_encabezado = NuevaCargaEstadoFuerza();
                carga_encabezado.id_estado_fuerza = id;
                carga_encabezado.nombre_archivo   = file.FileName;
                try
                {
                    db.Carga_Estado_Fuerza.Add(carga_encabezado);
                    db.SaveChanges();
                }
                catch
                {
                    ContextMessage msg = new ContextMessage(ContextMessage.Error, "Error durante la conexión con el servidor. Carga de archivo no efectuada.");
                    msg.ReturnUrl = Url.Action("");
                    TempData[User.Identity.Name] = msg;
                    return(RedirectToAction("Mensaje"));
                }
                var hoja = from a in excel.Worksheet(worksheetNames.First()) select a;
                List <ResultadoCargaEF> resultado = new List <ResultadoCargaEF>();
                foreach (var a in hoja)
                {
                    bool   correcto = true;
                    string error    = "";
                    try
                    {
                        string empleado      = a["id_empleado"];
                        string ubicacion     = a["id_ubicacion"];
                        string tipo_servicio = a["id_tipo_ubicacion"]; //Tipo Servicio
                        string situacion     = a["id_estado"];         //Situacion
                        string observacion   = a["comentario"];        //Observacion

                        int id_empleado, id_ubicacion, id_tipo_servicio, id_situacion;
                        //Código de Empleado
                        if (int.TryParse(empleado, out id_empleado))
                        {
                            var Empleado = db.Contratacion.SingleOrDefault(e => e.id_empleado == id_empleado && e.activo && !e.eliminado);
                            if (Empleado != null)
                            {
                                if (Empleado.id_estado_empleado != (int)Catalogos.Estado_Empleado.Alta)
                                {
                                    error    = "El empleado no está de Alta.";
                                    correcto = false;
                                }
                            }
                            else
                            {
                                error    = "El empleado no existe.\n";
                                correcto = false;
                            }
                        }
                        else
                        {
                            error    = "El formato del código de empleado es incorrecto.\n";
                            correcto = false;
                        }
                        //Situacion
                        if (int.TryParse(situacion, out id_situacion))
                        {
                            if (db.Situacion.SingleOrDefault(s => s.activo && !s.eliminado && s.id_situacion == id_situacion) == null)
                            {
                                error   += "Estado ingresado no reconocido.\n";
                                correcto = false;
                            }
                        }
                        else
                        {
                            error   += "El formato del estado es incorrecto.\n";
                            correcto = false;
                        }
                        //Ubicacion
                        if (int.TryParse(ubicacion, out id_ubicacion))
                        {
                            if (db.Ubicaciones.SingleOrDefault(u => u.activo && !u.eliminado && u.id_ubicacion == id_ubicacion) == null)
                            {
                                error   += "Ubicación ingresada no reconocida.\n";
                                correcto = false;
                            }
                        }
                        else
                        {
                            error   += "El formato del código de ubicación es incorrecto.\n";
                            correcto = false;
                        }
                        //Tipo de Servicio
                        if (int.TryParse(tipo_servicio, out id_tipo_servicio))
                        {
                            if (db.Cat_Tipos_Agente.SingleOrDefault(t => t.activo && !t.eliminado && t.id_cat_tipo_agente == id_tipo_servicio) == null)
                            {
                                error   += "Tipo de ubicación no reconocido.\n";
                                correcto = false;
                            }
                        }
                        else
                        {
                            error   += "El formato del tipo de ubicación es incorrecto.\n";
                            correcto = false;
                        }

                        var detalle_ef = estado_fuerza.Estado_Fuerza_Detalle.SingleOrDefault(e => e.activo && !e.eliminado && e.id_empleado == id_empleado);
                        if (detalle_ef != null)
                        {
                            error   += "El empleado ya esta registrado en el estado de fuerza.\n";
                            correcto = false;
                        }
                        //Validar que no se ingrese dos veces en el mismo archivo
                        var semejantes = resultado.Where(r => r.id_empleado == empleado);
                        if (semejantes.Count() > 0)
                        {
                            error   += "Registro duplicado en la carga del archivo.\n";
                            correcto = false;
                        }
                        if (!String.IsNullOrEmpty(error))
                        {
                            error = error.Substring(0, error.LastIndexOf('.'));
                        }
                        Carga_Estado_Fuerza_Detalle carga_detalle = new Carga_Estado_Fuerza_Detalle();
                        carga_detalle.id_empleado            = empleado;
                        carga_detalle.id_ubicacion           = ubicacion;
                        carga_detalle.id_cat_tipo_agente     = tipo_servicio;
                        carga_detalle.observacion            = observacion;
                        carga_detalle.id_situacion           = situacion;
                        carga_detalle.id_carga_estado_fuerza = carga_encabezado.id_carga_estado_fuerza;
                        db.Carga_Estado_Fuerza_Detalle.Add(carga_detalle);

                        //Resultados de la lectura del archivo
                        ResultadoCargaEF nuevo_resultado = new ResultadoCargaEF();
                        nuevo_resultado.correcto           = correcto;
                        nuevo_resultado.error              = error;
                        nuevo_resultado.id_empleado        = empleado;
                        nuevo_resultado.id_cat_tipo_agente = tipo_servicio;
                        nuevo_resultado.id_situacion       = situacion;
                        nuevo_resultado.observacion        = observacion;
                        nuevo_resultado.id_ubicacion       = ubicacion;
                        resultado.Add(nuevo_resultado);
                    }
                    catch
                    {
                        error   += "Ocurrio un error innesperado en la lectura de este registro.";
                        correcto = false;
                    }
                }
                db.SaveChanges();
                tran.Commit();
                ViewBag.id_estado_fuerza = estado_fuerza.id_estado_fuerza;
                return(View("ResultadoCargaMasiva", resultado.OrderBy(x => x.correcto).ToList()));
            }
        }