public static FichaIngreso ConsultarFichaIngreso(int id)
        {
            FichaIngreso objeto = new FichaIngreso();

            try
            {
                objeto = db.ConsultarFichaIngreso(id).FirstOrDefault();
                return(objeto);
            }
            catch (Exception)
            {
                return(objeto);
            }
        }
Beispiel #2
0
        public ActionResult Edit(FichaIngreso formulario, List <DetalleEstudios> estudios, List <DetalleExperiencias> experiencias, List <DetalleCargasFamiliares> cargasFamiliares, Usuario usuario)
        {
            string FileName = string.Empty;

            try
            {
                estudios         = estudios ?? new List <DetalleEstudios>();
                experiencias     = experiencias ?? new List <DetalleExperiencias>();
                cargasFamiliares = cargasFamiliares ?? new List <DetalleCargasFamiliares>();

                estudios         = estudios ?? new List <DetalleEstudios>();
                experiencias     = experiencias ?? new List <DetalleExperiencias>();
                cargasFamiliares = cargasFamiliares ?? new List <DetalleCargasFamiliares>();

                var fichaIngreso = HttpContext.Request.Params.Get("formulario");
                formulario = JsonConvert.DeserializeObject <FichaIngresoOverload>(fichaIngreso, settingsJsonDeserilize).formulario;

                var datosUsuario = HttpContext.Request.Params.Get("usuario");
                usuario = JsonConvert.DeserializeObject <UsuarioOverload>(datosUsuario).usuario;

                var dataEstudios = HttpContext.Request.Params.Get("estudios");
                estudios = JsonConvert.DeserializeObject <EstudiosOverload>(dataEstudios).estudios;

                var dataExperiencias = HttpContext.Request.Params.Get("experiencias");
                experiencias = JsonConvert.DeserializeObject <ExperienciaOverload>(dataExperiencias, settingsJsonDeserilize).experiencias;

                var dataCargasFamiliares = HttpContext.Request.Params.Get("cargasFamiliares");
                cargasFamiliares = JsonConvert.DeserializeObject <CargasFamiliaresOverload>(dataCargasFamiliares, settingsJsonDeserilize).cargasFamiliares;

                //Usuario
                usuario.IdUsuario = formulario.UsuarioID;

                //Obtener archivos
                HttpFileCollectionBase files = Request.Files;

                for (int i = 0; i < files.Count; i++)
                {
                    HttpPostedFileBase file = files[i];
                    string             path = string.Empty;

                    // Checking for Internet Explorer
                    if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                    {
                        string[] testfiles = file.FileName.Split(new char[] { '\\' });
                        path = testfiles[testfiles.Length - 1];
                    }
                    else
                    {
                        path     = file.FileName;
                        FileName = file.FileName;
                    }

                    string tipoArchivo = file.ContentType;

                    using (var reader = new BinaryReader(file.InputStream))
                    {
                        formulario.Foto = reader.ReadBytes(file.ContentLength);
                    }
                }

                usuario.Direccion = formulario.DireccionCallePrincipal + " ; " + formulario.DireccionCalleSecundaria + " ; " + formulario.DireccionConjuntoResidencial + " N. " + formulario.DireccionNumeroCasa;

                var actualizacionDatosUsuario = UsuarioDAL.ActualizarDatosUsuarioFichaIngreso(usuario);

                if (actualizacionDatosUsuario.Estado)
                {
                    Resultado = FichaIngresoDAL.ActualizarFichaIngreso(formulario, cargasFamiliares, estudios, experiencias);
                }
                else
                {
                    return(Json(new { Resultado = new RespuestaTransaccion {
                                          Estado = false, Respuesta = actualizacionDatosUsuario.Respuesta
                                      } }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { Resultado = Resultado }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Excepción al editar ficha de ingreso.");
                return(Json(new { Resultado = new RespuestaTransaccion {
                                      Estado = false, Respuesta = ex.Message
                                  } }, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #3
0
        public ActionResult Create(FichaIngreso formulario, List <DetalleEstudios> estudios, List <DetalleExperiencias> experiencias, List <DetalleCargasFamiliares> cargasFamiliares, Usuario usuario)
        {
            string FileName = string.Empty;

            try
            {
                estudios         = estudios ?? new List <DetalleEstudios>();
                experiencias     = experiencias ?? new List <DetalleExperiencias>();
                cargasFamiliares = cargasFamiliares ?? new List <DetalleCargasFamiliares>();

                var fichaIngreso = HttpContext.Request.Params.Get("formulario");
                formulario = JsonConvert.DeserializeObject <FichaIngresoOverload>(fichaIngreso, settingsJsonDeserilize).formulario;

                var datosUsuario = HttpContext.Request.Params.Get("usuario");
                usuario = JsonConvert.DeserializeObject <UsuarioOverload>(datosUsuario).usuario;

                var dataEstudios = HttpContext.Request.Params.Get("estudios");
                estudios = JsonConvert.DeserializeObject <EstudiosOverload>(dataEstudios).estudios;

                var dataExperiencias = HttpContext.Request.Params.Get("experiencias");
                experiencias = JsonConvert.DeserializeObject <ExperienciaOverload>(dataExperiencias, settingsJsonDeserilize).experiencias;

                var dataCargasFamiliares = HttpContext.Request.Params.Get("cargasFamiliares");
                cargasFamiliares = JsonConvert.DeserializeObject <CargasFamiliaresOverload>(dataCargasFamiliares, settingsJsonDeserilize).cargasFamiliares;

                //Usuario
                usuario.IdUsuario = formulario.UsuarioID;

                //Obtener archivos
                HttpFileCollectionBase files = Request.Files;

                for (int i = 0; i < files.Count; i++)
                {
                    HttpPostedFileBase file = files[i];
                    string             path = string.Empty;

                    // Checking for Internet Explorer
                    if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                    {
                        string[] testfiles = file.FileName.Split(new char[] { '\\' });
                        path = testfiles[testfiles.Length - 1];
                    }
                    else
                    {
                        path     = file.FileName;
                        FileName = file.FileName;
                    }

                    string tipoArchivo = file.ContentType;

                    using (var reader = new BinaryReader(file.InputStream))
                    {
                        formulario.Foto = reader.ReadBytes(file.ContentLength);
                    }
                }

                usuario.Direccion = formulario.DireccionCallePrincipal + " ; " + formulario.DireccionCalleSecundaria + " ; " + formulario.DireccionConjuntoResidencial + " N. " + formulario.DireccionNumeroCasa;

                var actualizacionDatosUsuario = UsuarioDAL.ActualizarDatosUsuarioFichaIngreso(usuario);

                if (actualizacionDatosUsuario.Estado)
                {
                    var    destinatarios = PerfilesDAL.ConsultarCorreoNotificacion(14);
                    string enlace        = GetUrlSitio(Url.Action("Index", "FichaIngreso"));

                    string body = GetEmailTemplate("TemplateFormularioIngreso");
                    body = body.Replace("@ViewBag.EnlaceDirecto", enlace);
                    body = body.Replace("@ViewBag.EnlaceSecundario", enlace);
                    body = body.Replace("@ViewBag.Empleado", usuario.Nombres + " " + usuario.Apellidos);

                    Resultado = FichaIngresoDAL.CrearFichaIngreso(formulario, cargasFamiliares, estudios, experiencias);
                    //Siempre que la ficha de ingreso haya sido creado con éxito.
                    if (Resultado.Estado)
                    {
                        var notificacion = NotificacionesDAL.CrearNotificacion(new Notificaciones
                        {
                            NombreTarea                  = "Nueva Ficha Ingreso",
                            DescripcionTarea             = "Correo de notificación de registro de ficha un nuevo empleado en el corporativo a RRHH y al área médica.",
                            NombreEmisor                 = nombreCorreoEmisor,
                            CorreoEmisor                 = correoEmisor,
                            ClaveCorreo                  = claveEmisor,
                            CorreosDestinarios           = destinatarios,
                            AsuntoCorreo                 = "NOTIFICACION DE FICHA DE INGRESO",
                            NombreArchivoPlantillaCorreo = TemplateNotificaciones,
                            CuerpoCorreo                 = body,
                            AdjuntosCorreo               = "",//ruta,
                            FechaEnvioCorreo             = DateTime.Now,
                            Empresa = "ATISCODE",
                            Canal   = CanalNotificaciones,
                            Tipo    = "FICHA INGRESO",
                        });
                    }
                }
                else
                {
                    return(Json(new { Resultado = new RespuestaTransaccion {
                                          Estado = false, Respuesta = actualizacionDatosUsuario.Respuesta
                                      } }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { Resultado = Resultado }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Excepción al crear ficha de ingreso.");
                return(Json(new { Resultado = new RespuestaTransaccion {
                                      Estado = false, Respuesta = ex.Message
                                  } }, JsonRequestBehavior.AllowGet));
            }
        }
        public static RespuestaTransaccion CrearFichaIngreso(FichaIngreso objeto, List <DetalleCargasFamiliares> cargasFamiliares, List <DetalleEstudios> estudios, List <DetalleExperiencias> experiencias)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    //Validación de fecha de nacimiento
                    if (objeto.FechaNacimiento > DateTime.Now)
                    {
                        return new RespuestaTransaccion {
                                   Estado = false, Respuesta = string.Format(Mensajes.MensajeValidacionRangoFecha, "nacimiento", "actual")
                        }
                    }
                    ;

                    //Validación de fecha de nacimiento de cargas familiares
                    foreach (var item in cargasFamiliares)
                    {
                        if (item.FechaNacimiento > DateTime.Now)
                        {
                            return new RespuestaTransaccion {
                                       Estado = false, Respuesta = string.Format(Mensajes.MensajeValidacionRangoFecha, "nacimiento de " + item.Nombres + " ,", "actual")
                            }
                        }
                        ;
                    }

                    //Validación de rango de fechas en experiencias
                    foreach (var item in experiencias)
                    {
                        if (item.FechaInicio > item.FechaFin)
                        {
                            return new RespuestaTransaccion {
                                       Estado = false, Respuesta = Mensajes.MensajeValidacionRangoFechasInicioFin
                            }
                        }
                        ;
                    }

                    objeto.FechaIngresoFicha = DateTime.Now;

                    db.FichaIngreso.Add(objeto);
                    db.SaveChanges();

                    int fechaIngresoID = objeto.IDFichaIngreso;

                    foreach (var item in cargasFamiliares)
                    {
                        item.FichaIngresoID = fechaIngresoID;
                        db.DetalleCargasFamiliares.Add(item);
                        db.SaveChanges();
                    }

                    foreach (var item in experiencias)
                    {
                        item.FichaIngresoID = fechaIngresoID;
                        db.DetalleExperiencias.Add(item);
                        db.SaveChanges();
                    }

                    foreach (var item in estudios)
                    {
                        item.FichaIngresoID = fechaIngresoID;
                        db.DetalleEstudios.Add(item);
                        db.SaveChanges();
                    }

                    //Solucion error atach
                    db.Entry(objeto).State = EntityState.Detached;

                    transaction.Commit();

                    return(new RespuestaTransaccion {
                        Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa
                    });
                }
                catch (Exception ex)
                {
                    //Solucion error atach
                    db.Entry(objeto).State = EntityState.Detached;

                    transaction.Rollback();
                    return(new RespuestaTransaccion {
                        Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " ;" + ex.Message.ToString()
                    });
                }
            }
        }
        public static RespuestaTransaccion ActualizarFichaIngreso(FichaIngreso objeto, List <DetalleCargasFamiliares> cargasFamiliares, List <DetalleEstudios> estudios, List <DetalleExperiencias> experiencias)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    // assume Entity base class have an Id property for all items
                    var entity = db.FichaIngreso.Find(objeto.IDFichaIngreso);
                    if (entity == null)
                    {
                        return(new RespuestaTransaccion {
                            Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida
                        });
                    }

                    if (objeto.Foto == null)
                    {
                        objeto.Foto = entity.Foto;
                    }

                    db.Entry(entity).CurrentValues.SetValues(objeto);
                    db.SaveChanges();

                    int fechaIngresoID = objeto.IDFichaIngreso;

                    #region Actualizar Detalles
                    // Limpiar primero los detalles anteriores
                    var detallesAnterioresCargasFamiliares = db.DetalleCargasFamiliares.Where(s => s.FichaIngresoID == fechaIngresoID).ToList();
                    foreach (var item in detallesAnterioresCargasFamiliares)
                    {
                        db.DetalleCargasFamiliares.Remove(item);
                        db.SaveChanges();
                    }
                    //Registrar nuevos detalles
                    foreach (var item in cargasFamiliares)
                    {
                        item.FichaIngresoID = fechaIngresoID;
                        db.DetalleCargasFamiliares.Add(item);
                        db.SaveChanges();
                    }

                    // Limpiar primero los detalles anteriores
                    var detallesAnterioresExperiencias = db.DetalleExperiencias.Where(s => s.FichaIngresoID == fechaIngresoID).ToList();
                    foreach (var item in detallesAnterioresExperiencias)
                    {
                        db.DetalleExperiencias.Remove(item);
                        db.SaveChanges();
                    }
                    foreach (var item in experiencias)
                    {
                        item.FichaIngresoID = fechaIngresoID;
                        db.DetalleExperiencias.Add(item);
                        db.SaveChanges();
                    }

                    // Limpiar primero los detalles anteriores
                    var detallesAnterioresEstudios = db.DetalleEstudios.Where(s => s.FichaIngresoID == fechaIngresoID).ToList();
                    foreach (var item in detallesAnterioresEstudios)
                    {
                        db.DetalleEstudios.Remove(item);
                        db.SaveChanges();
                    }
                    foreach (var item in estudios)
                    {
                        item.FichaIngresoID = fechaIngresoID;
                        db.DetalleEstudios.Add(item);
                        db.SaveChanges();
                    }
                    #endregion

                    transaction.Commit();

                    return(new RespuestaTransaccion {
                        Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa
                    });
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(new RespuestaTransaccion {
                        Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " ;" + ex.Message.ToString()
                    });
                }
            }
        }