public async Task <WrapperSimpleTypesDTO> VerificarQueNoExistaUnPagoEnTramite(HistorialPagosPersonas historialPagoParaVerificar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PagosRepository pagosRepo = new PagosRepository(context); bool pagoEstaEnTramite = await pagosRepo.VerificarQueNoExistaUnPagoEnTramite(historialPagoParaVerificar); WrapperSimpleTypesDTO wrapper = new WrapperSimpleTypesDTO { PagoEnTramite = pagoEstaEnTramite }; return(wrapper); } }
public async Task <Tuple <WrapperSimpleTypesDTO, TimeLineNotificaciones> > ModificarEstadoPagoPersona(HistorialPagosPersonas historialPagoParaModificar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PagosRepository pagosRepo = new PagosRepository(context); Notificaciones notificacion = null; // Modifico el estado y la fecha de pago de este historial HistorialPagosPersonas historialPagoExistente = await pagosRepo.ModificarEstadoPagoPersona(historialPagoParaModificar); // Si el pago fue aprobado if (historialPagoParaModificar.EstadoDelPago == EstadoDeLosPagos.Aprobado) { PlanesRepository planRepo = new PlanesRepository(context); // Busco el codigo de plan de la persona asignado cuando se registro // Tabla PlanUsuarios, no es el plan en si, es el registro que lleva el control del plan para ese usuario int?codigoPlanUsuario = await planRepo.BuscarCodigoPlanUsuarioPorCodigoPersona(historialPagoExistente.CodigoPersona); PlanesBusiness planBusiness = new PlanesBusiness(); // Armo la entidad del nuevo plan PlanesUsuarios planUsuario = new PlanesUsuarios { Consecutivo = codigoPlanUsuario.Value, CodigoPlanDeseado = historialPagoExistente.CodigoPlan }; // Cambio el plan para esa persona await planBusiness.CambiarDePlanUsuario(planUsuario); // Si el pago que me es mandando esta marcado como PayU // Actualizo las observaciones y la referencia del pago ya que es todo en uno if (historialPagoParaModificar.EsPagoPorPayU) { historialPagoExistente.ReferenciaPago = historialPagoParaModificar.ReferenciaPago; historialPagoExistente.ObservacionesCliente = historialPagoParaModificar.ObservacionesCliente; } // Armamos una notificacion para el nuevo plan NoticiasRepository noticiasRepo = new NoticiasRepository(context); notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PlanAprobado, CodigoPlanNuevo = historialPagoExistente.CodigoPlan, CodigoPersonaDestinoAccion = historialPagoExistente.CodigoPersona, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); } else if (historialPagoParaModificar.EstadoDelPago == EstadoDeLosPagos.Rechazado) { historialPagoExistente.ObservacionesAdministrador = historialPagoParaModificar.ObservacionesAdministrador; NoticiasRepository noticiasRepo = new NoticiasRepository(context); notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PlanRechazado, CodigoPlanNuevo = historialPagoParaModificar.CodigoPlan, CodigoPersonaDestinoAccion = historialPagoParaModificar.CodigoPersona, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); } else if (historialPagoParaModificar.EstadoDelPago == EstadoDeLosPagos.PendientePorAprobar) { if (string.IsNullOrWhiteSpace(historialPagoParaModificar.ReferenciaPago) || historialPagoParaModificar.CodigoArchivo <= 0) { throw new InvalidOperationException("No puedes reportar el pago de un plan si no ofreces la referencia del pago y/o el archivo"); } historialPagoExistente.ReferenciaPago = historialPagoParaModificar.ReferenciaPago; historialPagoExistente.CodigoArchivo = historialPagoParaModificar.CodigoArchivo; historialPagoExistente.ObservacionesCliente = historialPagoParaModificar.ObservacionesCliente; } WrapperSimpleTypesDTO wrapperModificarEstadoPagoPersona = new WrapperSimpleTypesDTO(); TimeLineNotificaciones timeLineNotificacion = null; wrapperModificarEstadoPagoPersona.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperModificarEstadoPagoPersona.NumeroRegistrosAfectados > 0) { wrapperModificarEstadoPagoPersona.Exitoso = true; if (notificacion != null && notificacion.Consecutivo > 0) { NoticiasRepository noticiasRepo = new NoticiasRepository(context); if (notificacion.CodigoPersonaDestinoAccion.HasValue && notificacion.CodigoPersonaDestinoAccion > 0) { PersonasRepository personaRepo = new PersonasRepository(context); int codigoIdioma = await personaRepo.BuscarCodigoIdiomaDeLaPersona(notificacion.CodigoPersonaDestinoAccion.Value); notificacion.CodigoIdiomaUsuarioBase = codigoIdioma; } timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); } } return(Tuple.Create(wrapperModificarEstadoPagoPersona, timeLineNotificacion)); } }
public async Task <HistorialPagosPersonasDTO> BuscarPagoEnTramiteDeUnaPersona(HistorialPagosPersonas historialPagoParaVerificar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PagosRepository pagosRepo = new PagosRepository(context); HistorialPagosPersonasDTO pagoEnTramite = await pagosRepo.BuscarPagoEnTramiteDeUnaPersona(historialPagoParaVerificar); if (pagoEnTramite != null) { DateTimeHelperNoPortable helper = new DateTimeHelperNoPortable(); pagoEnTramite.FechaPago = helper.ConvertDateTimeFromAnotherTimeZone(historialPagoParaVerificar.ZonaHorariaGMTBase, helper.DifferenceBetweenGMTAndLocalTimeZone, pagoEnTramite.FechaPago); } return(pagoEnTramite); } }