public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; if (duration.TotalHours <= 12.0) { basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours);//arendonda a hora pra cima } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } double tax = _brazilTaxSercice.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); // hra final - hra inicial // define valor pagamento pela hora ou dia double basicPayment = 0.0; if (duration.TotalHours <= 12.0) { basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); // Ceilling - arredonda + } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } // gera fatura obtendo basicPayment e adiciona em prop (Invoice - tipo Invoice) de CarRental double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; if (duration.TotalHours <= 12.0) { basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } double tax = _taxService.Tax(basicPayment); // não é a forma correta ainda carRental.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPaymente = 0.0; if (duration.TotalHours <= 12.0) { basicPaymente = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPaymente = Priceperday * Math.Ceiling(duration.TotalDays); } double tax = _taxservices.Tax(basicPaymente); carRental.Invoice = new Invoice(basicPaymente, tax); }
public static void Main(string[] args) { /* * Problema: * locação - por hora até 12 horas * por dia a cima de 12 horas * Além do valor da locação é acrecentado ao preço o imposto conforme regras do país * 20% valores até $100 * 15% valores a cima de $100 */ /* * Solução do problema sem interface */ try { Console.WriteLine("Entre com os dados do aluguél"); Console.Write("Car model: "); string model = Console.ReadLine(); Console.Write("Pickup (dd/MM/yyyy hh:mm): "); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Return (dd/MM/yyyy hh:mm): "); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Entre com o preço por hora: "); double hour = Double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Entre com o preço por dia: "); double day = Double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); CarRental carRental = new CarRental(start, finish, new Vehicle(model)); RentalService rentalService = new RentalService(hour, day); rentalService.ProcessInvoice(carRental); Console.WriteLine(carRental.Invoice); } catch (Exception e) { Console.WriteLine(e.Message); } }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment; if (duration.TotalHours <= 12.0) { basicPayment = Math.Ceiling(duration.TotalHours) * ValuePerHour; } else { basicPayment = Math.Ceiling(duration.TotalDays) * ValuePerDay; } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
protected void dgCarRental_DeleteCommand(object source, DataGridCommandEventArgs e) { int id = (int)dgCarRental.DataKeys[e.Item.ItemIndex]; CarRental CarRental = _presenter.GetCarRentalById(id); try { CarRental.Status = "InActive"; _presenter.SaveOrUpdateCarRental(CarRental); BindCarRentals(); Master.ShowMessage(new AppMessage("Car Rental was Removed Successfully", Chai.WorkflowManagment.Enums.RMessageType.Info)); } catch (Exception ex) { Master.ShowMessage(new AppMessage("Error: Unable to delete Car Rental. " + ex.Message, Chai.WorkflowManagment.Enums.RMessageType.Error)); } }
public void ProcessInvoice(CarRental carRental) { TimeSpan duracao = carRental.Fim.Subtract(carRental.Inicio); double basicPayment = 0.0; if (duracao.TotalHours <= 12.0) { basicPayment = PricePerHour * Math.Ceiling(duracao.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(duracao.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
static void Main(string[] args) { Console.WriteLine("Entre com os Dados do aluguel"); Console.WriteLine("Cliente"); Console.WriteLine("Nome"); string nome = Console.ReadLine(); Console.WriteLine("CPF"); string cpf = Console.ReadLine(); Console.WriteLine("Data de nascimento"); DateTime dataNascimento = DateTime.Parse(Console.ReadLine()); Client client = new Client(cpf, nome, dataNascimento); Console.WriteLine("Modelo do carro"); string modelo = Console.ReadLine(); Console.Write("Retirada:"); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Devolução:"); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); CarRental CarRental = new CarRental(start, finish); Console.WriteLine("Entre com o preço Por hora"); double hour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.WriteLine("Entre com o preço Por Dia"); double day = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); RentalService rentalService = new RentalService(hour, day, new BrasilTexServices()); rentalService.ProcessInvoice(CarRental); Console.WriteLine("Dados do cliente"); Console.WriteLine(client); Console.WriteLine("Descrição do pedido"); Console.WriteLine(CarRental.Invoice); }
static void Main(string[] args) { try { Console.WriteLine("Enter rental data"); Console.Write("Car model: "); string model = Console.ReadLine(); Console.Write("Pickup (dd/MM/yyyy hh:mm):"); DateTime pichkup = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy hh:mm", CultureInfo.InvariantCulture); Console.Write("Return (dd/MM/yyyy hh:mm):"); DateTime Return = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy hh:mm", CultureInfo.InvariantCulture); Console.Write("Enter price per hour: "); double PerHora = double.Parse(Console.ReadLine()); Console.Write("Enter price per day: "); double PerDay = double.Parse(Console.ReadLine()); CarRental carRental = new CarRental(pichkup, Return, new Vehicle(model)); RentalService rentalService = new RentalService(PerHora, PerDay, new BrazilTaxService()); rentalService.ProcessInvoice(carRental); Console.WriteLine("INCOICE"); Console.WriteLine(carRental.Invoice); Console.WriteLine(); Console.WriteLine("Pressione qualquer tecla para continuar."); Console.ReadKey(); } catch (Exception e) { Console.WriteLine("Retornou um erro inesperado" + e.Message); } }
public void ProcessInvoice(CarRental carRental) { Duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; if (Duration.TotalHours <= 12) { basicPayment = PricePerHour * Math.Ceiling(Duration.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(Duration.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
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 CarRental carRental = new CarRental(retirada, entrega, new Vehicle(modelo)); //Instanciar um serviço de aluguel passando a dependêcia, que é a classe concreta BrazilTaxService RentalService rentalService = new RentalService(precoPorHora, precoPorDia, new BrazilTaxService()); //Associar o objeto Fatura ao aluguel do veículo rentalService.ProcessInvoice(carRental); ForegroundColor = ConsoleColor.Yellow; WriteLine(); WriteLine("::::::::::: FATURA :::::::::::"); WriteLine(carRental.Invoice); ResetColor(); }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; if (duration.TotalHours <= 12.0) { //O método "Math.Ceiling(), arredonda o valor para cima. basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
// to get a car rental from the database and populate the fields with the fetched data // PK cannot be changed. protected async void GetCarRental_Click(object sender, EventArgs e) { CarRental carRental = await dbHelper.GetCarRental(ddlCarRentals.SelectedItem.Text); // to check that it's not an empty object if (carRental != null) { CarRentalCodeTextBox.Text = carRental.Code; CarRentalNameTextBox.Text = carRental.Name; CarRentalCodeTextBox.Enabled = false; EditCarRentalButton.Enabled = true; AddCRResults.Text = "CarRental is fetched"; } else { AddCRResults.Text = "CANNOT BE FETCHED"; } }
public void ProcessInvoice(CarRental carRental) { //subtração de data e atribuicao a variável duration TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; if (duration.TotalHours <= 12.0) { //atribui as horas vezes o preco por hora (arredondando pra cima com o Math.Ceiling) basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.CarReturn.Subtract(carRental.CarPickup); var basicPayment = 0.0; if (duration.TotalHours <= 12.0) { basicPayment = HourRates * Math.Ceiling(duration.TotalHours); } else { basicPayment = DailyRates * Math.Ceiling(duration.TotalDays); } var tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental car) { TimeSpan totalDuration = car.Finish.Subtract(car.Start); double basicPayment; double tax; if (totalDuration.Hours <= 12.0) { basicPayment = Math.Ceiling(totalDuration.TotalHours) * PricePerHour; } else { basicPayment = PricePerDay * Math.Ceiling(totalDuration.TotalDays); } tax = TaxService.Tax(basicPayment); car.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; //Valida a duração da locação do veículo e arredonda para cima if (duration.TotalHours <= 12) { basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } //Calcula a taxa de imposto double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
public void ProcessInvoice(CarRental carRental) { // Obetendo o tempo total do aluguel em TimeSpan. TimeSpan duration = carRental.DateFinish.Subtract(carRental.DateStart); double basicPayment = 0; if (duration.TotalHours <= 12) { //Math.Ceiling arredonda os valores. basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPayment = PricePerHour * Math.Ceiling(duration.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
protected string CreateAndSaveACarRental(string carCategory, string customerSocialSecurityNumber, decimal currentMilage) { using (var db = new CarRentalContext()) { var rental = new CarRental() { CarCategory = carCategory, CustomerSocialSecurityNumber = customerSocialSecurityNumber, CarMilageAtRentInKm = currentMilage, Rented = _dateTimeProvider.GetUtcNow() }; db.Add(rental); db.SaveChanges(); rental.BookingNumber = "BN" + rental.Id; //No real req. here, just it made up for now db.SaveChanges(); return(rental.BookingNumber); } }
public void ProcessInvoice(CarRental carRental) { TimeSpan duration = carRental.Finish.Subtract(carRental.Start); decimal total = 0m; if (duration.TotalHours <= 12) { total = PrecoPorHora * (decimal)Math.Ceiling(duration.TotalHours); } else { total = PrecoPorDia * (decimal)Math.Ceiling(duration.TotalDays); } decimal tax = _taxService.Tax(total); carRental.Invoice = new Invoice(total, tax); Console.WriteLine($"Total {total}"); }
internal static int Change(CarRental item) { using (var unitOfWork = new UnitOfWork()) { using (var items = new XPCollection <DB.CarRentals>(unitOfWork)) { var dbItem = items.FirstOrDefault(u => u.Id == item.Id); if (dbItem == null) { throw new Exception(Resources.CarRentals_Read_Точка_выдачи_не_найдена_); } dbItem.Name = item.Name; dbItem.SiteId = item.SiteId; } unitOfWork.CommitChanges(); return(item.Id); } }
/// <summary> /// Autofills the car rental information for car rental id when the user clicks "Autofill" button /// </summary> /// <param name="sender"></param> /// <param name="args"></param> public void Autofill_Click(object sender, RoutedEventArgs args) { string message = ""; if (Check.ValidPositiveInt("Car Rental ID", uxCarRentalID.Text, out message)) { int carRentalID = int.Parse(uxCarRentalID.Text); SqlCommandExecutor executor = new SqlCommandExecutor(connectionString); CarRental agency = executor.ExecuteReader(new CarsGetAgencyByIDDelegate(carRentalID)); City city = executor.ExecuteReader(new LocationGetCityByCityIdDelegate(agency.CityID)); uxCarRentalAgencyName.Text = agency.AgencyName; uxCity.Text = city.CityName; uxCountry.Text = city.Country; uxRegion.Text = city.Region; } else { MessageBox.Show(message); } }
// GET: CarRentals/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CarRental carRental = await db.CarRentals.FindAsync(id); if (carRental == null) { return(HttpNotFound()); } ViewBag.CarID = db.Cars.Select(car => new SelectListItem { Text = car.Make + " " + car.Model, Value = car.ID.ToString() }); ViewBag.CustomerID = new SelectList(db.Customers, "ID", "Name", carRental.CustomerID); ViewBag.EmployeeID = new SelectList(db.Employees, "ID", "Name", carRental.EmployeeID); return(View(carRental)); }
public void ProcessInvoice(CarRental carRental) { // pegando duração de horas em C# TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; if (duration.TotalHours <= 12.0) { basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); //Math.Ceiling -> arrendonda para cima } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
public async Task <ActionResult> AddCarRental([FromBody] CarRental item) { if (!AllowEdit(item.TripID)) { return(Forbid()); } await service.SaveCarRental(new CarRental() { TripID = item.TripID, Price = item.Price, CarRentalCompany = item.CarRentalCompany, CarPickupAddress = item.CarPickupAddress, CarRentalUrl = item.CarRentalUrl, CarIssueDate = item.CarIssueDate, CarReturnDate = item.CarReturnDate, Currency = item.Currency, }); return(Ok()); }
public async Task <ActionResult <CarRental> > PostCarRental(CarRental carRental) { _context.CarRental.Add(carRental); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (CarRentalExists(carRental.CompanyCode)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetCarRental", new { id = carRental.CompanyCode }, carRental)); }
static void Main(string[] args) { /* * Uma locadora brasileira de carros cobra um valor por hora para locações de até * 12 horas. Porém, se a duração da locação ultrapassar 12 horas, a locação será * cobrada com base em um valor diário. Além do valor da locação, é acrescido no * preço o valor do imposto conforme regras do país que, no caso do Brasil, é 20% * para valores até 100.00, ou 15% para valores acima de 100.00. Fazer um * programa que lê os dados da locação (modelo do carro, instante inicial e final da * locação), bem como o valor por hora e o valor diário de locação. O programa * deve então gerar a nota de pagamento (contendo valor da locação, valor do * imposto e valor total do pagamento) e informar os dados na tela. Veja os * exemplos. */ Console.WriteLine("Enter rental data"); Console.Write("Car model: "); string model = Console.ReadLine(); Console.Write("Pickup (dd/MM/yyyy hh:mm): "); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Return (dd/MM/yyyy hh:mm): "); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Enter price per hour: "); double hour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Enter price per day: "); double day = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); CarRental carRental = new CarRental(start, finish, new Vehicle(model)); RentalService rentalService = new RentalService(hour, day, new BrazilTaxService()); rentalService.ProcessInvoice(carRental); Console.WriteLine("INVOICE:\n" + carRental.Invoice); }
static void Main(string[] args) { try { Console.WriteLine("Enter rental data"); Console.Write("Car model: "); string model = Console.ReadLine(); Console.Write("Pickup (dd/MM/yyyy hh:mm): "); DateTime start = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Return (dd/MM/yyyy hh:mm): "); DateTime finish = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Enter price per hour: "); double hour = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Enter price per day: "); double day = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); CarRental carRental = new CarRental(start, finish, new Vehicle(model)); RentalService rentalService = new RentalService(hour, day, new BrazilTaxService()); rentalService.ProcessInvoice(carRental); Console.WriteLine("INVOICE: "); Console.WriteLine(carRental.Invoice); } catch (System.FormatException e) { Console.WriteLine("Error in format: " + e.Message); } catch (DomainException e) { Console.WriteLine("Error in car rental: " + e.Message); } catch (Exception e) { Console.WriteLine("Unexpected error: " + e.Message); } }
public void ProcessInvoice(CarRental carRental) { //Duração da minha locação TimeSpan duration = carRental.Finish.Subtract(carRental.Start); double basicPayment = 0.0; //arredondando para cima Math.Ceiling if (duration.TotalHours <= 12.0) { basicPayment = PricePerHour * Math.Ceiling(duration.TotalHours); } else { basicPayment = PricePerDay * Math.Ceiling(duration.TotalDays); } double tax = _taxService.Tax(basicPayment); carRental.Invoice = new Invoice(basicPayment, tax); }
private void PopulateCarRental(CarRental rental) { rental.RentalCompany = (new[] {"Avis", "EasyCar", "Hertz"})[random.Next(3)]; rental.NumberOfDays = random.Next(14) + 1; }