Beispiel #1
0
        static void Main(string[] args)
        {
            ForegroundColor = ConsoleColor.Yellow;
            WriteLine("Digite os dados do aluguel");
            ForegroundColor = ConsoleColor.Red;
            Write("Modelo do carro: ");
            string modelo = ReadLine();

            ResetColor();
            Write("Retirada do veículo: (dd/MM/yyyy hh:mm): ");
            ForegroundColor = ConsoleColor.Red;
            DateTime retirada = DateTime.Parse(ReadLine());

            ResetColor();
            Write("Entrega do veículo: (dd/MM/yyyy hh:mm): ");
            ForegroundColor = ConsoleColor.Red;
            DateTime entrega = DateTime.Parse(ReadLine());

            ResetColor();
            Write("Digite o preço por hora: ");
            ForegroundColor = ConsoleColor.Red;
            double precoPorHora = double.Parse(ReadLine(), CultureInfo.InvariantCulture);

            ResetColor();
            Write("Digite o preço por dia: ");
            ForegroundColor = ConsoleColor.Red;
            double precoPorDia = double.Parse(ReadLine(), CultureInfo.InvariantCulture);

            //Instanciar um aluguel de veículo
            AluguelVeiculo aluguelVeiculo = new AluguelVeiculo(retirada, entrega, new Veiculo(modelo));
            //Instanciar um serviço de aluguel
            AluguelServices aluguelServices = new AluguelServices(precoPorHora, precoPorDia);

            //Associar o objeto Fatura ao aluguel do veículo
            aluguelServices.ProcessoFatura(aluguelVeiculo);

            ForegroundColor = ConsoleColor.Yellow;
            WriteLine();
            WriteLine("::::::::::: FATURA :::::::::::");
            WriteLine(aluguelVeiculo.Fatura);
            ResetColor();
        }
Beispiel #2
0
        public void ProcessoFatura(AluguelVeiculo aluguelVeiculo)
        {
            TimeSpan duracao         = aluguelVeiculo.Fim.Subtract(aluguelVeiculo.Inicio);
            double   pagamentoBasico = 0.0;

            //Valida a duração da locação do veículo e arredonda para cima
            if (duracao.TotalHours <= 12.0)
            {
                pagamentoBasico = PrecoPorHora * Math.Ceiling(duracao.TotalHours);
            }
            else
            {
                pagamentoBasico = PrecoPorDia * Math.Ceiling(duracao.TotalDays);
            }

            //Calcula o imposto baseado no pagamento básico
            double taxa = _brasilTaxaService.Taxa(pagamentoBasico);

            //Instanciar a fatura
            aluguelVeiculo.Fatura = new Fatura(pagamentoBasico, taxa);
        }