Пример #1
0
        /// <summary>
        /// Realiza la búsqueda de plantillas
        /// </summary>
        /// <param name="filtro">Filtro de búsqueda</param>
        /// <returns>Listado de plantillas</returns>
        public ProcessResult <List <PlantillaResponse> > BuscarPlantilla(PlantillaRequest filtro)
        {
            ProcessResult <List <PlantillaResponse> > resultado       = new ProcessResult <List <PlantillaResponse> >();
            List <CodigoValorResponse> resultadoTipoContrato          = null;
            List <CodigoValorResponse> resultadoTipoDocumentoContrato = null;
            List <CodigoValorResponse> resultadoEstadoVigencia        = null;

            try
            {
                resultadoTipoContrato          = politicaService.ListarTipoContrato().Result;
                resultadoTipoDocumentoContrato = politicaService.ListarTipoDocumentoContrato().Result;
                resultadoEstadoVigencia        = politicaService.ListarEstadoVigencia().Result;

                Guid?codigoPlantilla = filtro.CodigoPlantilla != null ? new Guid(filtro.CodigoPlantilla) : (Guid?)null;

                DateTime?fechaInicioVigencia = null;
                DateTime?fechaFinVigencia    = null;

                if (!string.IsNullOrWhiteSpace(filtro.FechaInicioVigenciaString))
                {
                    fechaInicioVigencia = DateTime.ParseExact(filtro.FechaInicioVigenciaString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture);
                }
                else
                {
                    fechaInicioVigencia = null;
                }

                if (!string.IsNullOrWhiteSpace(filtro.FechaFinVigenciaString))
                {
                    fechaFinVigencia = DateTime.ParseExact(filtro.FechaFinVigenciaString, DatosConstantes.Formato.FormatoFecha, System.Globalization.CultureInfo.InvariantCulture);
                }
                else
                {
                    fechaFinVigencia = null;
                }

                List <PlantillaLogic> listado = plantillaLogicRepository.BuscarPlantilla(codigoPlantilla, filtro.Descripcion, filtro.CodigoTipoContrato,
                                                                                         filtro.CodigoTipoDocumentoContrato, filtro.CodigoEstadoVigencia, filtro.IndicadorAdhesion,
                                                                                         fechaInicioVigencia, fechaFinVigencia, filtro.NumeroPagina, filtro.RegistrosPagina);

                resultado.Result = new List <PlantillaResponse>();
                foreach (var registro in listado)
                {
                    var plantilla = PlantillaAdapter.ObtenerPlantillaPaginado(registro, resultadoTipoContrato, resultadoTipoDocumentoContrato, resultadoEstadoVigencia);
                    resultado.Result.Add(plantilla);
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <PlantillaService>(e);
            }
            return(resultado);
        }
Пример #2
0
        /// <summary>
        /// Registra o actualiza una plantilla
        /// </summary>
        /// <param name="data">Datos a registrar</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <object> RegistrarPlantilla(PlantillaRequest data)
        {
            ProcessResult <object> resultado = new ProcessResult <object>();

            try
            {
                PlantillaEntity entidad        = PlantillaAdapter.RegistrarPlantilla(data);
                DateTime        fechaActual    = DateTime.Now.Date;
                bool            existeRepetido = false;

                if (!string.IsNullOrWhiteSpace(data.FechaInicioVigenciaString))
                {
                    var resultadoValidacion = plantillaLogicRepository.BuscarPlantillaTipo(data.CodigoTipoContrato, data.CodigoTipoDocumentoContrato, Convert.ToBoolean(data.IndicadorAdhesion));
                    existeRepetido = resultadoValidacion.Any(x => x.CodigoPlantilla != entidad.CodigoPlantilla && x.FechaInicioVigenciaDate == entidad.FechaInicioVigencia);
                    if (existeRepetido)
                    {
                        resultado.IsSuccess = false;
                        resultado.Exception = new ApplicationLayerException <PlantillaService>(MensajesSistema.PlantillaExiste);
                    }
                    else
                    {
                        if (data.CodigoPlantilla == null && data.CodigoPlantillaCopiar == null)
                        {
                            entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo;
                            plantillaEntityRepository.Insertar(entidad, entornoActualAplicacion);
                        }
                        else if (data.CodigoPlantillaCopiar != null)
                        {
                            entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo;
                            plantillaEntityRepository.CopiarPlantilla(new Guid(data.CodigoPlantillaCopiar), data.Descripcion, data.CodigoTipoContrato, data.CodigoTipoDocumentoContrato, Convert.ToDateTime(data.FechaInicioVigenciaString), entornoActualAplicacion.UsuarioSession, entornoActualAplicacion.Terminal, data.EsMayorMenor);
                        }
                        else
                        {
                            //var contratosAsociadoPlantilla = listadoContratoLogicRepository.BuscarListadoContrato(null, null, entidad.CodigoPlantilla, null,
                            //                                                            null, null, DatosConstantes.EstadoContrato.Edicion,
                            //                                                            null, null, null, null, null, null, null,
                            //                                                            DatosConstantes.CodigoEstadoEdicion.EdicionParcial,null, 1, -1).FirstOrDefault();

                            //if (contratosAsociadoPlantilla == null)
                            //{
                            var entidadSincronizar = plantillaEntityRepository.GetById(entidad.CodigoPlantilla);
                            entidadSincronizar.Descripcion = entidad.Descripcion;
                            entidadSincronizar.CodigoTipoDocumentoContrato = entidad.CodigoTipoDocumentoContrato;
                            entidadSincronizar.CodigoTipoContrato          = entidad.CodigoTipoContrato;
                            entidadSincronizar.IndicadorAdhesion           = entidad.IndicadorAdhesion;
                            entidadSincronizar.FechaInicioVigencia         = entidad.FechaInicioVigencia;
                            //INICIO: Agregado por Julio Carrera - Norma Contable
                            entidadSincronizar.Es_MayorMenor = entidad.Es_MayorMenor;
                            //FIN: Agregado por Julio Carrera - Norma Contable

                            plantillaEntityRepository.Editar(entidadSincronizar, entornoActualAplicacion);
                            //}
                            //else
                            //{
                            //    resultado.IsSuccess = false;
                            //    resultado.Exception = new ApplicationLayerException<PlantillaService>(MensajesSistema.PlantillaNoModificar);
                            //}
                        }

                        plantillaEntityRepository.GuardarCambios();

                        plantillaEntityRepository.ActualizarPlantillaEstadoVigencia();

                        resultado.Result = data;
                    }
                }
                else
                {
                    resultado.IsSuccess = false;
                    resultado.Exception = new ApplicationLayerException <PlantillaService>(MensajesSistema.PlantillaFechaInicioVigenciIncorrecto);
                }
            }
            catch (Exception e)
            {
                LogBL.grabarLogError(new Exception("RegistrarPlantilla"));
                LogBL.grabarLogError(e.GetBaseException());
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <PlantillaService>(e.GetBaseException().Message);
            }
            return(resultado);
        }