Ejemplo n.º 1
0
        public Response <Credito> Crear(CreditoRequest request)
        {
            Empleado empleado = _unitOfWork.EmpleadoRepository.FindFirstOrDefault(x => x.Cedula == request.CedulaEmpleado);

            if (empleado == null)
            {
                return(new Response <Credito>
                {
                    Mensaje = $"El número de cédula {request.CedulaEmpleado} no existe.",
                    Entity = request.ToEntity()
                });
            }

            var errores = CreditoBuilder.PuedeCrearCredito(request.Valor, request.Plazo, request.TasaDeInteres);

            if (errores.Any())
            {
                return new Response <Credito> {
                           Mensaje = string.Join("|", errores), Entity = request.ToEntity()
                }
            }
            ;

            Credito credito = CreditoBuilder.CrearCredito(request.Valor, request.Plazo, request.TasaDeInteres);

            empleado.Creditos.Add(credito);
            _unitOfWork.EmpleadoRepository.Edit(empleado);
            _unitOfWork.Commit();
            return(new Response <Credito>
            {
                Mensaje = $"Crédito registrado. Valor a pagar: ${credito.ValorAPagar}.",
                Entity = credito
            });
        }
Ejemplo n.º 2
0
        public void CrearCredito()
        {
            CreditoRequest request = new CreditoRequest
            {
                CedulaEmpleado = "1082480166",
                Plazo          = 10,
                Valor          = 6000000
            };
            var respuesta = service.Crear(request);

            Assert.AreEqual($"Crédito registrado. Valor a pagar: ${request.ToEntity().ValorAPagar}.", respuesta.Mensaje);
        }
Ejemplo n.º 3
0
        public void CrearCreditoCedulaIncorrecta()
        {
            CreditoRequest request = new CreditoRequest
            {
                CedulaEmpleado = "11111111",
                Plazo          = 10,
                Valor          = 6000000
            };
            var respuesta = service.Crear(request);

            Assert.AreEqual($"El número de cédula {request.CedulaEmpleado} no existe.", respuesta.Mensaje);
        }
        public static Response <List <ClienteCreditoEntity> > ListarClientesContrato(CreditoRequest request)
        {
            try
            {
                // Lista 'ClientesContrato'
                var listarClientesContrato = CreditoRepository.ListarClientesContrato(0);

                for (int i = 0; i < listarClientesContrato.Count; i++)
                {
                    // Consulta 'Contrato'
                    ContratoEntity consultarContrato = CreditoRepository.ConsultarContrato(listarClientesContrato[i].IdContrato);
                    if (consultarContrato != null)
                    {
                        if (consultarContrato.Marcador == "1")
                        {
                            if (consultarContrato.Saldo <= 0)
                            {
                                listarClientesContrato.RemoveAt(i);
                                i--;
                                continue;
                            }
                        }
                    }
                    else
                    {
                        listarClientesContrato.RemoveAt(i);
                        i--;
                        continue;
                    }

                    // Verifica 'ContratoPasajes'
                    var verificarContratoPasajes = CreditoRepository.VerificarContratoPasajes(listarClientesContrato[i].RucCliente, request.FechaViaje, request.FechaViaje, request.CodiOficina.ToString(), request.CodiRuta.ToString(), request.CodiServicio.ToString(), listarClientesContrato[i].IdRuc);

                    if (verificarContratoPasajes.IdContrato <= 0)
                    {
                        // Valida 'ClientePrecioNormal'
                        var validarClientePrecioNormal = CreditoRepository.ValidarClientePrecioNormal(listarClientesContrato[i].IdRuc, request.FechaViaje, request.FechaViaje);
                        if (!validarClientePrecioNormal)
                        {
                            listarClientesContrato.RemoveAt(i);
                            i--;
                            continue;
                        }
                    }

                    // Verificar 'PrecioNormal'
                    var verificarPrecioNormal = CreditoRepository.VerificarPrecioNormal(verificarContratoPasajes.IdContrato);
                    // Si encontró datos (IdNormal toma desde el 0)
                    if (verificarPrecioNormal.IdNormal >= 0)
                    {
                        if (verificarPrecioNormal.Saldo <= 0)
                        {
                            listarClientesContrato.RemoveAt(i);
                            i--;
                            continue;
                        }
                    }
                    // Sino
                    else
                    {
                        if (verificarContratoPasajes.SaldoBoletos <= 0)
                        {
                            listarClientesContrato.RemoveAt(i);
                            i--;
                            continue;
                        }
                    }

                    // Seteo variables auxiliares desde 'verificarContratoPasajes'
                    listarClientesContrato[i].CntBoletos   = verificarContratoPasajes.CntBoletos;   // Cnt
                    listarClientesContrato[i].SaldoBoletos = verificarContratoPasajes.SaldoBoletos; // SALDO
                    listarClientesContrato[i].IdPrecio     = verificarContratoPasajes.IdPrecio;     // IdServicioContrato
                    listarClientesContrato[i].Precio       = verificarContratoPasajes.Precio;       // Precio
                }

                if (listarClientesContrato.Count == 0)
                {
                    return(new Response <List <ClienteCreditoEntity> >(false, listarClientesContrato, Message.MsgValidaListarClientesContrato, true));
                }
                else
                {
                    return(new Response <List <ClienteCreditoEntity> >(true, listarClientesContrato, Message.MsgCorrectoListarClientesContrato, true));
                }
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(CreditoLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <List <ClienteCreditoEntity> >(false, null, Message.MsgExcListarClientesContrato, false));
            }
        }
        public ActionResult <Response <Credito> > Post(CreditoRequest credito)
        {
            var response = _service.Crear(credito);

            return(Ok(response));
        }