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