/// <summary> /// Método que recolhe os dados preenchidos pelo usuário, valida as datas para não estarem inválidas e após isso, envia a requisição de locação para o servidor através da interface de Web Service /// </summary> private void botaoConfirmar_Click(object sender, EventArgs e) { Locacao loc = new Locacao(); DateTime retirada = dateDataRetirada.Value.Date; int retiradaHora = dateHoraRetirada.Value.Hour; int retiradaMinuto = dateHoraRetirada.Value.Minute; TimeSpan tsRetirada = new TimeSpan(retiradaHora, retiradaMinuto, 0); retirada = retirada.Date + tsRetirada; DateTime devolucao = dateDataDevolucao.Value.Date; int devolucaoHora = dateHoraDevolucao.Value.Hour; int devolucaoMinuto = dateHoraDevolucao.Value.Minute; TimeSpan tsDevolucao = new TimeSpan(devolucaoHora, devolucaoMinuto, 0); devolucao = devolucao.Date + tsDevolucao; loc.setDataHoraRetirada(retirada); loc.setDataHoraDevolucao(devolucao); loc.setIdadeCondutor(Convert.ToInt32(spinnerIdadeCondutor.Text)); loc.setLocalDevolucao(boxLocalDevolucao.Text); loc.setLocalRetirada(boxLocalRetirada.Text); loc.setNomeCondutor(boxNomeMotorista.Text); loc.setNumeroCartao(boxNumeroCartao.Text); loc.setParcelasCartao(Convert.ToInt32(spinnerNumeroParcelas.Text)); loc.setIdVeiculoReferencia(selecionado.getIdVeiculo()); int comparacao = devolucao.CompareTo(retirada); if (comparacao <= 0) { MessageBox.Show("A devolução está sendo agendada para antes da data de retirada.", "Incorreto!", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { DateTime hoje = DateTime.Today; comparacao = hoje.CompareTo(retirada); if (comparacao >= 1) { MessageBox.Show("A retirada está sendo marcada para antes de agora.", "Incorreto!", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { WebServiceCliente wsc = new WebServiceCliente(); bool sucesso = wsc.EfetuarLocacao(loc); if (sucesso) { MessageBox.Show("Locação efetuada com sucesso.", "Finalizado!", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Dispose(); } else { MessageBox.Show("Locação não realizada. Na data e horário solicitados já há uma reserva.", "Tente novamete", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } }
/// <summary> /// Método de inicialização da janela. /// Também consulta os veículos no Servidor e lista-os para seleção /// </summary> public JanelaLocarVeiculo() { InitializeComponent(); WebServiceCliente wsc = new WebServiceCliente(); veiculos = wsc.RecuperarVeiculos(); if (veiculos.Count != 0) { comboVeiculos.DataSource = veiculos; comboVeiculos.DisplayMember = "descricaoParaCombo"; } }
/// <summary> /// Método de inicialização da janela. /// Também consulta os veículos no Servidor e lista-os para seleção /// </summary> public JanelaRelatorioLocacoes() { InitializeComponent(); panelLocacoes.Visible = false; WebServiceCliente wsc = new WebServiceCliente(); List <Veiculo> veiculos = wsc.RecuperarVeiculos(); if (veiculos.Count != 0) { comboVeiculos.DataSource = veiculos; comboVeiculos.DisplayMember = "descricaoParaCombo"; } }
/// <summary> /// Método que recupera as locações para o veículo selecionado, exibindo-os após trocar o Panel /// </summary> private void botaoAvancar_Click(object sender, EventArgs e) { if (comboVeiculos.SelectedItem == null) { MessageBox.Show("Selecione um carro", "Cliente", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { listaLocacoes.Clear(); Veiculo selecionado = (Veiculo)comboVeiculos.SelectedItem; labelLocVeic.Text = "Relatório de Locações para o Veículo " + selecionado.getIdVeiculo() + "-" + selecionado.getModelo(); WebServiceCliente wsc = new WebServiceCliente(); List <Locacao> locacoes = wsc.RecuperarLocacoesPorVeiculo(selecionado.getIdVeiculo()); foreach (Locacao l in locacoes) { String linha = "De " + l.getDataHoraRetirada().Day.ToString(); linha = linha + "/" + l.getDataHoraRetirada().Month.ToString(); linha = linha + "/" + l.getDataHoraRetirada().Year.ToString(); linha = linha + " as " + l.getDataHoraRetirada().Hour.ToString() + ":"; if (l.getDataHoraRetirada().Minute < 10) { linha = linha + "0"; } linha = linha + l.getDataHoraRetirada().Minute.ToString(); linha = linha + " com retirada no " + l.getLocalRetirada(); linha = linha + " e devolução " + l.getDataHoraDevolucao().Day.ToString(); linha = linha + "/" + l.getDataHoraDevolucao().Month.ToString(); linha = linha + "/" + l.getDataHoraDevolucao().Year.ToString(); linha = linha + " as " + l.getDataHoraDevolucao().Hour.ToString() + ":"; if (l.getDataHoraDevolucao().Minute < 10) { linha = linha + "0"; } linha = linha + l.getDataHoraDevolucao().Minute.ToString(); linha = linha + " no " + l.getLocalDevolucao(); listaLocacoes.Items.Add(linha); } panelCarro.Visible = false; panelLocacoes.Visible = true; } }