/// <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); }
///// <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); }
/// <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); }