示例#1
0
        /// <summary>
        /// Búsqueda de TrabajadorSuplente
        /// </summary>
        /// <param name="filtro">Trabajador Request</param>
        /// <returns>Lista con resultados de busqueda</returns>
        public ProcessResult <List <TrabajadorSuplenteResponse> > BuscarTrabajadorSuplente(TrabajadorRequest filtro)
        {
            ProcessResult <List <TrabajadorSuplenteResponse> > resultado = new ProcessResult <List <TrabajadorSuplenteResponse> >();

            try
            {
                List <TrabajadorSuplenteLogic> listado = trabajadorLogicRepository.ListarTrabajadorSuplente(filtro.CodigoTrabajador.Value);
                resultado.Result = listado.Select(u => TrabajadorAdapter.ObtenerTrabajadorSuplenteResponse(u)).ToList();
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(e);
            }

            return(resultado);
        }
示例#2
0
        /// <summary>
        /// Lista los proyectos asociados a un trabajador SAP.
        /// </summary>
        /// <param name="filtro">Filtro de búsqueda</param>
        /// <returns>Lista de proyectos asociados</returns>
        public ProcessResult <List <TrabajadorUnidadOperativaResponse> > ListarTrabajadorUnidadOperativaSAP(TrabajadorUnidadOperativaRequest filtro)
        {
            var resultado = new ProcessResult <List <TrabajadorUnidadOperativaResponse> >();

            try
            {
                var listado = trabajadorLogicRepository.ListarTrabajadorUnidadOperativaSAP(filtro.CodigoUnidadOperativaMatriz, filtro.CodigoTrabajador).Where(p => p.EstadoRegistro == "1").ToList();
                resultado.Result = listado.Select(u => TrabajadorAdapter.ObtenerTrabajadorUnidadOperativaResponse(u)).ToList();
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(e);
            }

            return(resultado);
        }
示例#3
0
        /// <summary>
        /// Registrar Trabajador
        /// </summary>
        /// <param name="data">Trabajador Response</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <TrabajadorRequest> RegistrarTrabajador(TrabajadorRequest data)
        {
            ProcessResult <TrabajadorRequest> resultado = new ProcessResult <TrabajadorRequest>();

            try
            {
                TrabajadorEntity entidad = TrabajadorAdapter.ObtenerTrabajadorEntity(data);
                entidad.UsuarioCreacion  = "";
                entidad.TerminalCreacion = "";
                entidad.FechaCreacion    = DateTime.Now;

                if (data.CodigoTrabajador == null)
                {
                    data.CodigoTrabajador = Guid.NewGuid();
                    trabajadorEntityRepository.Insertar(entidad);
                }
                else
                {
                    var entidadEditar = trabajadorEntityRepository.GetById(entidad.Codigo);
                    entidadEditar.CodigoTipoDocumentoIdentidad = entidad.CodigoTipoDocumentoIdentidad;;
                    entidadEditar.NumeroDocumentoIdentidad     = entidad.NumeroDocumentoIdentidad;
                    entidadEditar.ApellidoPaterno  = entidad.ApellidoPaterno;
                    entidadEditar.ApellidoMaterno  = entidad.ApellidoMaterno;
                    entidadEditar.Nombres          = entidad.Nombres;
                    entidadEditar.NombreCompleto   = entidad.NombreCompleto;
                    entidadEditar.Cargo            = entidad.Cargo;
                    entidadEditar.Organizacion     = entidad.Organizacion;
                    entidadEditar.Departamento     = entidad.Departamento;
                    entidadEditar.TelefonoTrabajo  = entidad.TelefonoTrabajo;
                    entidadEditar.Anexo            = entidad.Anexo;
                    entidadEditar.TelefonoMovil    = entidad.TelefonoMovil;
                    entidadEditar.TelefonoPersonal = entidad.TelefonoPersonal;
                    entidadEditar.Dominio          = entidad.Dominio;
                    trabajadorEntityRepository.Editar(entidadEditar);
                }

                trabajadorEntityRepository.GuardarCambios();
                resultado.Result = data;
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(e);
            }
            return(resultado);
        }
示例#4
0
        /// <summary>
        /// Lista registros de trabajadores a partir de códigos.
        /// </summary>
        /// <param name="listaCodigos">Lista de códigos de trabajadores</param>
        /// <returns>Lista de trabajadores</returns>
        public ProcessResult <List <TrabajadorResponse> > ListarTrabajadores(List <Guid?> listaCodigos)
        {
            var resultado = new ProcessResult <List <TrabajadorResponse> >();

            try
            {
                //var listaCodigosGuid = listaCodigos.Select(c => new Guid(c)).ToList();
                List <TrabajadorLogic> listado = trabajadorLogicRepository.ListarTrabajadores(listaCodigos);
                resultado.Result = listado.Select(u => TrabajadorAdapter.ObtenerTrabajadorPaginado(u, null)).ToList();
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(e);
            }

            return(resultado);
        }
示例#5
0
        /// <summary>
        /// Búsqueda de Trabajador
        /// </summary>
        /// <param name="filtro">Trabajador Request</param>
        /// <returns>Lista con resultados de busqueda</returns>
        public ProcessResult <List <TrabajadorResponse> > BuscarTrabajador(TrabajadorRequest filtro)
        {
            ProcessResult <List <TrabajadorResponse> > resultado = new ProcessResult <List <TrabajadorResponse> >();

            try
            {
                List <TrabajadorLogic> listado = trabajadorLogicRepository.BuscarTrabajador(filtro.CodigoTrabajador, filtro.CodigoIdentificacion, filtro.Dominio, filtro.CodigoTipoDocumentoIdentidad, filtro.NumeroDocumentoIdentidad, filtro.Nombres, filtro.NumeroPagina, filtro.RegistrosPagina);

                var listaTipoDocumento = politicaService.ListarTipoDocumentoIdentidad(null, "3");
                resultado.Result = listado.Select(u => TrabajadorAdapter.ObtenerTrabajadorPaginado(u, listaTipoDocumento.Result)).ToList();
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(e);
            }

            return(resultado);
        }
示例#6
0
        /// <summary>
        /// Búsqueda de la firma de un Trabajador.
        /// </summary>
        /// <param name="trabajador">Trabajador Request</param>
        /// <returns>Lista con resultados de busqueda</returns>
        public ProcessResult <TrabajadorResponse> BuscarFirmaTrabajador(TrabajadorRequest trabajador)
        {
            ProcessResult <TrabajadorResponse> resultado = new ProcessResult <TrabajadorResponse>();

            try
            {
                var dato = trabajadorLogicRepository.BuscarFirmaTrabajador(TrabajadorAdapter.ObtenerTrabajadorEntity(trabajador));
                if (dato != null)
                {
                    resultado.Result = TrabajadorAdapter.ObtenerTrabajadorPaginado(dato, null);
                }
            }
            catch (Exception ex)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(ex);
            }
            return(resultado);
        }
示例#7
0
        /// <summary>
        /// Búsqueda de Trabajador
        /// </summary>
        /// <param name="filtro">Trabajador Request</param>
        /// <returns>Lista con resultados de busqueda</returns>
        public ProcessResult <List <TrabajadorDatoMinimoResponse> > BuscarTrabajadorDatoMinimo(TrabajadorRequest filtro)
        {
            ProcessResult <List <TrabajadorDatoMinimoResponse> > resultado = new ProcessResult <List <TrabajadorDatoMinimoResponse> >();

            try
            {
                resultado.Result = new List <TrabajadorDatoMinimoResponse>();
                List <TrabajadorLogic> listado = trabajadorLogicRepository.BuscarTrabajadorDatoMinimo(filtro.Dominio, filtro.CodigoIdentificacion, filtro.NombreCompleto, filtro.CorreoElectronico);
                foreach (TrabajadorLogic item in listado)
                {
                    TrabajadorDatoMinimoResponse tdm = new TrabajadorDatoMinimoResponse();
                    tdm = TrabajadorAdapter.ObtenerTrabajadorDatoMinimo(item);
                    resultado.Result.Add(tdm);
                }
            }
            catch (Exception ex)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(ex);
            }
            return(resultado);
        }
示例#8
0
        /// <summary>
        /// Registrar Trabajador Suplente
        /// </summary>
        /// <param name="data">TrabajadorSuplente Response</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <TrabajadorSuplenteRequest> RegistrarTrabajadorSuplente(TrabajadorSuplenteRequest data)
        {
            ProcessResult <TrabajadorSuplenteRequest> resultado = new ProcessResult <TrabajadorSuplenteRequest>();
            TrabajadorSuplenteEntity entidad = new TrabajadorSuplenteEntity();

            try
            {
                var trabajadorSuplente = trabajadorSuplenteEntityRepository.GetById(data.CodigoTrabajador);

                #region SRA
                var trabajador = BuscarTrabajador(new TrabajadorRequest()
                {
                    CodigoTrabajador = data.CodigoTrabajador
                }).Result.FirstOrDefault();
                var Suplente = BuscarTrabajador(new TrabajadorRequest()
                {
                    CodigoTrabajador = data.CodigoSuplente
                }).Result.FirstOrDefault();

                SeguridadServiceClient seguridadService = new SeguridadServiceClient();

                if (data.Activo == true)
                {
                    //Buscamos al usuario original en el SRA
                    var usuarioSRAOriginal = seguridadService.GetUserByLoginAD(trabajador.CodigoIdentificacion, trabajador.DominioCorto);

                    if (Suplente != null && usuarioSRAOriginal != null)
                    {
                        //Verficamos si el usuario suplente esta registrado en el SRA
                        var usuarioSRASuplente = seguridadService.GetUserByLoginAD(Suplente.CodigoIdentificacion, Suplente.DominioCorto);

                        if (usuarioSRASuplente == null)
                        {
                            usuarioSRASuplente = seguridadService.InsertUserAD(Suplente.CodigoIdentificacion, Suplente.DominioCorto, data.UsuarioSession, data.Terminal);
                        }

                        //Validar que los perfiles del usuario original los tenga el usuario suplente
                        var perfilesOriginal  = usuarioSRAOriginal.PERFILES.Where(p => p.S_TOKEN == ConfigurationManager.AppSettings["CLIENT_SITE_TOKEN"].ToString()).ToList();
                        var perfilesSuplente  = usuarioSRASuplente.PERFILES.Where(p => p.S_TOKEN == ConfigurationManager.AppSettings["CLIENT_SITE_TOKEN"].ToString()).ToList();
                        var perfilesAgregados = string.Empty;

                        foreach (var item in perfilesOriginal)
                        {
                            if (perfilesSuplente.Where(p => p.S_NAME_PROFILE == item.S_NAME_PROFILE).FirstOrDefault() == null)
                            {
                                var obj = seguridadService.InsertUserProfileAsDesactivate(usuarioSRASuplente.ID_USER, item.N_ID_PROFILE, data.UsuarioSession, data.Terminal);
                                perfilesAgregados += (obj.N_ID_USER_PROFILE > 0 ? obj.N_ID_USER_PROFILE + "," : "");
                            }
                        }

                        //Actualizar el campo perfiles a la tabla Trabajador suplente
                        if (perfilesAgregados != string.Empty)
                        {
                            data.PerfilesAgregados = perfilesAgregados.TrimEnd(',');
                        }
                    }
                }
                else
                {
                    //Consultamos si esta registrado la combinacion trabajadorSuplente para este usuario logueado
                    //var trabajadorSuplente = BuscarTrabajadorSuplente(new TrabajadorRequest() { CodigoTrabajador = new Guid(trabajador.CodigoTrabajador) }).Result.FirstOrDefault();
                    if (trabajadorSuplente != null && !string.IsNullOrEmpty(trabajadorSuplente.PerfilesAgregados))
                    {
                        string[] perfiles = trabajadorSuplente.PerfilesAgregados.Split(',');
                        foreach (var item in perfiles)
                        {
                            seguridadService.DeleteUserProfile(Convert.ToInt32(item), data.UsuarioSession, data.Terminal);
                        }
                    }
                }
                #endregion

                //Obtenemos si un registro tiene el trabajador

                entidad = TrabajadorAdapter.ObtenerTrabajadorSuplenteEntity(data);

                #region antiguo
                //if (trabajadorSuplente == null)
                //{
                //    trabajadorSuplenteEntityRepository.Insertar(entidad);
                //}
                //else
                //{
                //    var entidadEditar = trabajadorSuplenteEntityRepository.GetById(entidad.CodigoTrabajador);

                //    entidadEditar.CodigoSuplente = entidad.CodigoSuplente; ;
                //    entidadEditar.FechaInicio    = entidad.FechaInicio != null ? entidad.FechaInicio : DateTime.Now;
                //    entidadEditar.FechaFin       = entidad.FechaFin != null ? entidad.FechaFin : DateTime.Now;
                //    entidadEditar.FechaCreacion  = DateTime.Now;
                //    entidadEditar.Ejecutado      = (entidad.Activo == false ? false : entidadEditar.Ejecutado);
                //    entidadEditar.Activo         = entidad.Activo;

                //    if (entidad.Activo == false)
                //    {
                //        entidadEditar.PerfilesAgregados = null;
                //    }
                //    else
                //    {
                //        entidadEditar.PerfilesAgregados = (entidad.PerfilesAgregados != null ? entidad.PerfilesAgregados : entidadEditar.PerfilesAgregados);
                //    }

                //    trabajadorSuplenteEntityRepository.Editar(entidadEditar);
                //}

                //trabajadorSuplenteEntityRepository.GuardarCambios();
                //resultado.Result = data;
                #endregion

                //Se cambia por procedure para evitar error en el servidor de stracon(peru)

                #region Nuevo

                if (trabajadorSuplente == null)
                {
                    entidad.UsuarioCreacion   = data.UsuarioSession;
                    entidad.TerminalCreacion  = data.Terminal;
                    entidad.PerfilesAgregados = data.PerfilesAgregados;
                    entidad.Ejecutado         = data.Ejecutado;

                    var resultInsertar = trabajadorLogicRepository.RegistrarSuplenteTrabajador(entidad);

                    if (resultInsertar == 0)
                    {
                        resultado.IsSuccess = false;
                    }
                    else
                    {
                        resultado.IsSuccess = true;
                    }
                }
                else
                {
                    if (entidad.Activo == false)
                    {
                        entidad.PerfilesAgregados = null;
                    }

                    entidad.UsuarioModificacion  = data.UsuarioSession;
                    entidad.TerminalModificacion = data.Terminal;
                    entidad.PerfilesAgregados    = data.PerfilesAgregados;
                    entidad.Ejecutado            = data.Ejecutado;

                    var resultActualizar = trabajadorLogicRepository.ActualizarSuplenteTrabajador(entidad);

                    if (resultActualizar == 0)
                    {
                        resultado.IsSuccess = false;
                    }
                    else
                    {
                        resultado.IsSuccess = true;
                    }
                }

                resultado.Result = data;
                #endregion
            }
            catch (Exception e)
            {
                LogEN.grabarLogError(e, entidad.FechaInicio.ToString());
            }
            return(resultado);
        }
示例#9
0
        /// <summary>
        /// Registrar TrabajadorUnidadOperativa
        /// </summary>
        /// <param name="data">Trabajador Response</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <TrabajadorRequest> RegistrarTrabajadorUnidadOperativa(TrabajadorRequest data)
        {
            ProcessResult <TrabajadorRequest> resultado = new ProcessResult <TrabajadorRequest>();

            try
            {
                if (string.IsNullOrEmpty(data.CodigoUnidadOperativaMatriz))
                {
                    resultado.IsSuccess = false;
                    resultado.Exception = new ApplicationLayerException <TrabajadorService>(MensajesSistema.UnidadOperativaMatrizObligatorio);
                    return(resultado);
                }

                var entidadEditar = trabajadorEntityRepository.GetById(data.CodigoTrabajador.Value);
                entidadEditar.CodigoUnidadOperativaMatriz  = new Guid(data.CodigoUnidadOperativaMatriz);
                entidadEditar.IndicadorTodaUnidadOperativa = data.IndicadorTodaUnidadOperativa;

                trabajadorEntityRepository.Editar(entidadEditar);

                if (!data.IndicadorTodaUnidadOperativa)
                {
                    var trabajadorUnidadOperativa = trabajadorLogicRepository.ListarTrabajadorUnidadOperativa(data.trabajadorUnidadOperativaRequest.CodigoUnidadOperativaMatriz, data.CodigoTrabajador.Value).Where(p => p.CodigoUnidadOperativa == data.trabajadorUnidadOperativaRequest.CodigoUnidadOperativa).FirstOrDefault();

                    TrabajadorUnidadOperativaEntity entidadTrabajadorUnidadOperativa = TrabajadorAdapter.ObtenerTrabajadorUnidadOperativaEntity(data.trabajadorUnidadOperativaRequest);

                    if (trabajadorUnidadOperativa == null)
                    {
                        trabajadorUnidadOperativaEntityRepository.Insertar(entidadTrabajadorUnidadOperativa);
                    }
                    else
                    {
                        entidadTrabajadorUnidadOperativa.CodigoUnidadOperativaMatriz     = entidadTrabajadorUnidadOperativa.CodigoUnidadOperativaMatriz;
                        entidadTrabajadorUnidadOperativa.CodigoTrabajadorUnidadOperativa = trabajadorUnidadOperativa.CodigoTrabajadorUnidadOperativa;
                        entidadTrabajadorUnidadOperativa.EstadoRegistro = DatosConstantes.EstadoRegistro.Activo;
                        entidadTrabajadorUnidadOperativa.FechaCreacion  = trabajadorUnidadOperativa.FechaCreacion;
                        trabajadorUnidadOperativaEntityRepository.Editar(entidadTrabajadorUnidadOperativa);
                    }

                    trabajadorUnidadOperativaEntityRepository.GuardarCambios();
                }

                trabajadorEntityRepository.GuardarCambios();
                resultado.Result = data;
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <TrabajadorService>(e);
            }
            return(resultado);
        }