/// <summary>
        /// Realiza la adaptación de campos para registrar o actualizar
        /// </summary>
        /// <param name="data">Datos a registrar o actualizar</param>
        /// <returns>Entidad Datos a registrar</returns>
        public static FlujoAprobacionEstadioEntity RegistrarFlujoAprobacionEstadio(FlujoAprobacionEstadioRequest data)
        {
            FlujoAprobacionEstadioEntity flujoAprobacionEstadioEntity = new FlujoAprobacionEstadioEntity();

            if (data.CodigoFlujoAprobacionEstadio != null)
            {
                flujoAprobacionEstadioEntity.CodigoFlujoAprobacionEstadio = new Guid(data.CodigoFlujoAprobacionEstadio);
            }
            else
            {
                Guid code;
                code = Guid.NewGuid();
                flujoAprobacionEstadioEntity.CodigoFlujoAprobacionEstadio = code;
            }
            flujoAprobacionEstadioEntity.CodigoFlujoAprobacion = new Guid(data.CodigoFlujoAprobacion);
            flujoAprobacionEstadioEntity.Orden                   = data.Orden;
            flujoAprobacionEstadioEntity.Descripcion             = data.Descripcion;
            flujoAprobacionEstadioEntity.TiempoAtencion          = data.TiempoAtencion;
            flujoAprobacionEstadioEntity.HorasAtencion           = data.HorasAtencion;
            flujoAprobacionEstadioEntity.IndicadorVersionOficial = data.IndicadorVersionOficial;
            flujoAprobacionEstadioEntity.IndicadorPermiteCarga   = data.IndicadorPermiteCarga;
            flujoAprobacionEstadioEntity.IndicadorNumeroContrato = data.IndicadorNumeroContrato;
            flujoAprobacionEstadioEntity.EstadoRegistro          = data.EstadoRegistro;
            flujoAprobacionEstadioEntity.IndicadorIncluirVisto   = data.IndicadorIncluirVisto;

            return(flujoAprobacionEstadioEntity);
        }
Esempio n. 2
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);
        }
Esempio n. 3
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);
        }