Ejemplo n.º 1
0
        ///// <summary>
        ///// Copia Estadio
        ///// </summary>
        ///// <param name="data">Datos a Copiar</param>
        ///// <returns>Indicador con el resultado de la operación</returns>
        //public ProcessResult<List<FlujoAprobacionEstadioResponse>> CopiarEstadio(FlujoAprobacionRequest data)
        //{
        //    ProcessResult<List<FlujoAprobacionEstadioResponse>> resultado = new ProcessResult<List<FlujoAprobacionEstadioResponse>>();

        //    try
        //    {
        //        var resultadoAcopiarEncontrado = flujoAprobacionLogicRepository.RepiteFlujoAprobacion(
        //            new Guid(data.CodigoUnidadOperativa),
        //            null,
        //            data.CodigoTipoContrato
        //        );

        //        bool existeEncontrado = resultadoAcopiarEncontrado.Any(e => e.CodigoFlujoAprobacion != new Guid(data.CodigoFlujoAprobacion));
        //        bool esIgual = resultadoAcopiarEncontrado.Any(e => e.CodigoFlujoAprobacion == new Guid(data.CodigoFlujoAprobacion));

        //        if (!existeEncontrado)
        //        {
        //            if (esIgual)
        //            {
        //                resultado.IsSuccess = false;
        //                resultado.Exception = new ApplicationLayerException<FlujoAprobacionService>(MensajesSistema.CopiarEstadioIgual);
        //            }
        //            else
        //            {
        //                resultado.IsSuccess = false;
        //                resultado.Exception = new ApplicationLayerException<FlujoAprobacionService>(MensajesSistema.CopiarEstadioNoExiste);
        //            }
        //        }
        //        else
        //        {

        //            var codigoFlujoAprobacionHasta = data.CodigoFlujoAprobacion;
        //            var codigoFlujoAprobacionADesde = resultadoAcopiarEncontrado.Select(e => e.CodigoFlujoAprobacion).FirstOrDefault().ToString();
        //            var resultadoCopiarEstadio = BuscarBandejaFlujoAprobacionEstadio(null, codigoFlujoAprobacionADesde);

        //            if (resultadoCopiarEstadio.Result.Count == 0)
        //            {
        //                resultado.IsSuccess = false;
        //                resultado.Exception = new ApplicationLayerException<FlujoAprobacionService>(MensajesSistema.CopiarEstadioNoTiene);
        //            }
        //            else
        //            {

        //                flujoAprobacionLogicRepository.CopiarEstadio(
        //                    new Guid(codigoFlujoAprobacionHasta),
        //                    new Guid(codigoFlujoAprobacionADesde),
        //                    entornoActualAplicacion.UsuarioSession,
        //                    entornoActualAplicacion.Terminal
        //               );

        //            }

        //        }
        //    }
        //    catch (Exception e)
        //    {
        //        resultado.IsSuccess = false;
        //        resultado.Exception = new ApplicationLayerException<FlujoAprobacionService>(e);
        //    }

        //    return resultado;
        //}

        /// <summary>
        /// Busca Estadios de Flujo de Aprobación de Estadio
        /// </summary>
        /// <param name="filtro">Filtro de Flujo de Aprobación</param>
        /// <returns>Lista de Estadios de Flujo de Aprobación</returns>
        public ProcessResult <List <FlujoAprobacionEstadioResponse> > BuscarFlujoAprobacionEstadioDescripcion(FlujoAprobacionEstadioRequest filtro)
        {
            ProcessResult <List <FlujoAprobacionEstadioResponse> > resultado = new ProcessResult <List <FlujoAprobacionEstadioResponse> >();

            try
            {
                List <FlujoAprobacionEstadioLogic> listado = flujoAprobacionLogicRepository.BuscarFlujoAprobacionEstadioDescripcion(
                    filtro.Descripcion,
                    DatosConstantes.EstadoRegistro.Activo
                    );

                resultado.Result = new List <FlujoAprobacionEstadioResponse>();

                foreach (var registro in listado)
                {
                    var flujoAprobacion = FlujoAprobacionEstadioAdapter.ObtenerFlujoAprobacionEstadioDescripcion(registro);
                    resultado.Result.Add(flujoAprobacion);
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(e);
            }

            return(resultado);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Registra / Edita Flujo Aprobacion Estadios
        /// </summary>
        /// <param name="data">Datos de estadio</param>
        /// <param name="responsable">Responsable de estadio</param>
        /// <param name="informados">Informados de estadio</param>
        /// <param name="responsableVinculadas">Responsable de vinculadas</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <FlujoAprobacionEstadioRequest> RegistrarFlujoAprobacionEstadio(FlujoAprobacionEstadioRequest data, List <FlujoAprobacionEstadioRequest> responsable, List <FlujoAprobacionEstadioRequest> informados, List <FlujoAprobacionEstadioRequest> responsableVinculadas)
        {
            ProcessResult <FlujoAprobacionEstadioRequest> resultado = new ProcessResult <FlujoAprobacionEstadioRequest>();
            string flagRegistrar = "I";

            try
            {
                string codigoResponsable             = "";
                FlujoAprobacionEstadioEntity entidad = FlujoAprobacionEstadioAdapter.RegistrarFlujoAprobacionEstadio(data);

                var resultadoRepetidoOrden = flujoAprobacionLogicRepository.RepiteFlujoAprobacionEstadioOrden(
                    new Guid(data.CodigoFlujoAprobacion),
                    data.Orden
                    );
                bool existeRepetidoOrden = resultadoRepetidoOrden.Any(e => e.CodigoFlujoAprobacionEstadio != entidad.CodigoFlujoAprobacionEstadio);
                var  numeroOrden         = resultadoRepetidoOrden.Select(e => e.Orden);


                var resultadoRepetidoDescripcion = flujoAprobacionLogicRepository.RepiteFlujoAprobacionEstadioDescripcion(
                    new Guid(data.CodigoFlujoAprobacion),
                    data.Descripcion
                    );
                bool existeRepetidoDescripcion = resultadoRepetidoDescripcion.Any(e => e.CodigoFlujoAprobacionEstadio != entidad.CodigoFlujoAprobacionEstadio);


                if (data.IndicadorVersionOficial)
                {
                    flujoAprobacionEstadioEntityRepository.ActualizaIndicadorVersionOficial(
                        entidad.CodigoFlujoAprobacion
                        );
                }

                if (data.IndicadorNumeroContrato)
                {
                    flujoAprobacionEstadioEntityRepository.ActualizaIndicadorNumeroContrato(
                        entidad.CodigoFlujoAprobacion
                        );
                }


                if (existeRepetidoDescripcion)
                {
                    resultado.IsSuccess = false;
                    resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionEstadioDescripcionExiste);
                    return(resultado);
                }

                if (data.CodigoFlujoAprobacionEstadio == null)
                {
                    if (numeroOrden.FirstOrDefault() == 1)
                    {
                        resultado.IsSuccess = false;
                        resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionOrdenIgualUno);
                        return(resultado);
                    }

                    flujoAprobacionEstadioEntityRepository.DesplazarOrden(
                        entidad,
                        flagRegistrar
                        );

                    flujoAprobacionEstadioEntityRepository.Insertar(entidad);
                }
                else
                {
                    if (numeroOrden.FirstOrDefault() >= 1)
                    {
                        flagRegistrar = "U";
                        flujoAprobacionEstadioEntityRepository.DesplazarOrden(
                            entidad,
                            flagRegistrar
                            );
                        var entidadSincronizar = flujoAprobacionEstadioEntityRepository.GetById(entidad.CodigoFlujoAprobacionEstadio);
                        entidadSincronizar.CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion;
                        entidadSincronizar.Orden                   = entidad.Orden;
                        entidadSincronizar.Descripcion             = entidad.Descripcion;
                        entidadSincronizar.TiempoAtencion          = entidad.TiempoAtencion;
                        entidadSincronizar.HorasAtencion           = entidad.HorasAtencion;
                        entidadSincronizar.IndicadorNumeroContrato = entidad.IndicadorNumeroContrato;
                        entidadSincronizar.IndicadorPermiteCarga   = entidad.IndicadorPermiteCarga;
                        entidadSincronizar.IndicadorVersionOficial = entidad.IndicadorVersionOficial;
                        entidadSincronizar.EstadoRegistro          = entidad.EstadoRegistro;
                        entidadSincronizar.IndicadorIncluirVisto   = entidad.IndicadorIncluirVisto;
                        flujoAprobacionEstadioEntityRepository.Editar(entidadSincronizar);
                    }
                    if (existeRepetidoOrden)
                    {
                        resultado.IsSuccess = false;
                        resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionOrdenIgualUno);
                        return(resultado);
                    }
                }

                flujoAprobacionLogicRepository.EliminaParticipante(
                    entidad.CodigoFlujoAprobacionEstadio
                    );

                //Registrar Participante Responsable (R)
                if (responsable.Count > 0)
                {
                    foreach (var item in responsable)
                    {
                        codigoResponsable = item.Responsable;
                    }

                    this.RegistrarFlujoAprobacionParticipante(new FlujoAprobacionParticipanteRequest()
                    {
                        CodigoFlujoAprobacionEstadio = entidad.CodigoFlujoAprobacionEstadio.ToString(),
                        CodigoTrabajador             = codigoResponsable,
                        CodigoTipoParticipante       = DatosConstantes.FlujoAprobacionTipoParticipante.Responsable
                    });
                }

                //Registrar Participante Informador (I)
                if (informados.Count > 0)
                {
                    foreach (var item in informados)
                    {
                        this.RegistrarFlujoAprobacionParticipante(new FlujoAprobacionParticipanteRequest()
                        {
                            CodigoFlujoAprobacionEstadio = entidad.CodigoFlujoAprobacionEstadio.ToString(),
                            CodigoTrabajador             = item.Informados,
                            CodigoTipoParticipante       = DatosConstantes.FlujoAprobacionTipoParticipante.Informado
                        });
                    }
                }

                //Registrar Participante Responsable de Vinculadas (V)
                if (responsableVinculadas != null)
                {
                    foreach (var item in responsableVinculadas)
                    {
                        this.RegistrarFlujoAprobacionParticipante(new FlujoAprobacionParticipanteRequest()
                        {
                            CodigoFlujoAprobacionEstadio = entidad.CodigoFlujoAprobacionEstadio.ToString(),
                            CodigoTrabajador             = item.Responsable,
                            CodigoTipoParticipante       = DatosConstantes.FlujoAprobacionTipoParticipante.ResponsableVinculadas
                        });
                    }
                }

                flujoAprobacionEstadioEntityRepository.GuardarCambios();

                resultado.Result = data;
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(e);
            }
            return(resultado);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Busca Bandeja Flujo Aprobacion Estadios
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns>Lista Flujo Aprobación Estadio</returns>
        public ProcessResult <List <FlujoAprobacionEstadioResponse> > BuscarBandejaFlujoAprobacionEstadio(string codigoFlujoAprobacionEstadio, string codigoFlujoAprobacion, bool obtenerInformacionRepresentante = false)
        {
            ProcessResult <List <FlujoAprobacionEstadioResponse> > resultado = new ProcessResult <List <FlujoAprobacionEstadioResponse> >();
            TrabajadorRequest trabajador = new TrabajadorRequest();

            try
            {
                Guid?CodigoFlujoAprobacionEstadio = (codigoFlujoAprobacionEstadio != null && codigoFlujoAprobacionEstadio.ToString() != "") ? new Guid(codigoFlujoAprobacionEstadio.ToString()) : (Guid?)null;
                Guid?CodigoFlujoAprobacion        = (codigoFlujoAprobacion != null && codigoFlujoAprobacion.ToString() != "") ? new Guid(codigoFlujoAprobacion.ToString()) : (Guid?)null;

                List <FlujoAprobacionEstadioLogic> listado = flujoAprobacionLogicRepository.BuscarBandejaFlujoAprobacionEstadio(
                    CodigoFlujoAprobacionEstadio,
                    CodigoFlujoAprobacion
                    );


                int          li_indexTrb              = -1;
                List <Guid?> lstRepresentantes        = new List <Guid?>();
                List <Guid?> lstInformados            = new List <Guid?>();
                List <Guid?> lstResponsableVinculadas = new List <Guid?>();

                string[] listaRepresentantes;
                string[] listaInformados;
                string[] listaResponsableVinculadas;

                foreach (var item in listado)
                {
                    if (obtenerInformacionRepresentante)
                    {
                        listaRepresentantes = item.CodigosRepresentante.Split('/');
                        if (item.CodigosRepresentante.Trim().Length > 1)
                        {
                            for (int li = 1; li < listaRepresentantes.Length; li++)
                            {
                                li_indexTrb = lstRepresentantes.FindIndex(x => x.Value.ToString().ToLower() == listaRepresentantes[li].ToLower());
                                if (li_indexTrb == -1)
                                {
                                    lstRepresentantes.Add(Guid.Parse(listaRepresentantes[li]));
                                }
                            }
                        }

                        listaInformados = item.CodigosInformado.Split('/');
                        if (item.CodigosInformado.Trim().Length > 1)
                        {
                            for (int li = 1; li < listaInformados.Length; li++)
                            {
                                li_indexTrb = lstInformados.FindIndex(x => x.Value.ToString().ToLower() == listaInformados[li].ToLower());
                                if (li_indexTrb == -1)
                                {
                                    lstInformados.Add(Guid.Parse(listaInformados[li]));
                                }
                            }
                        }

                        if (!string.IsNullOrEmpty(item.CodigosResponsableVinculadas))
                        {
                            listaResponsableVinculadas = item.CodigosResponsableVinculadas.Split('/');

                            for (int li = 1; li < listaResponsableVinculadas.Length; li++)
                            {
                                li_indexTrb = lstResponsableVinculadas.FindIndex(x => x.Value.ToString().ToLower() == listaResponsableVinculadas[li].ToLower());
                                if (li_indexTrb == -1)
                                {
                                    lstResponsableVinculadas.Add(Guid.Parse(listaResponsableVinculadas[li]));
                                }
                            }
                        }
                    }
                }

                List <TrabajadorResponse> listaRepresentante          = null;
                List <TrabajadorResponse> listaInformado              = null;
                List <TrabajadorResponse> listaResponsablesVinculadas = null;

                if (obtenerInformacionRepresentante)
                {
                    listaRepresentante          = trabajadorService.ListarTrabajadores(lstRepresentantes).Result;
                    listaInformado              = trabajadorService.ListarTrabajadores(lstInformados).Result;
                    listaResponsablesVinculadas = trabajadorService.ListarTrabajadores(lstResponsableVinculadas).Result;
                }

                resultado.Result = new List <FlujoAprobacionEstadioResponse>();
                foreach (var registro in listado)
                {
                    var flujoAprobacionEstadio = FlujoAprobacionEstadioAdapter.ObtenerFlujoAprobacionEstadio(registro, listaRepresentante, listaInformado, listaResponsablesVinculadas);
                    resultado.Result.Add(flujoAprobacionEstadio);
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(e);
            }
            return(resultado);
        }