private void PopularItemsFacturas() { List <Consumo> consumos = new ConsumoDAO().ObtenerConsumosDeEstadia(estadia); dataGridView1.Rows.Clear(); double costoDiario = new EstadiaDAO().ObtenerCostoDiarioEstadia(estadia); int diasReserva = reserva.Fecha_Fin.Subtract(reserva.Fecha_Inicio).Days; int diasEstadia = estadia.Fecha_Fin.Value.Subtract(estadia.Fecha_Inicio.Value).Days; // Agrego el item relacionado a los días en estadía AgregarItemFactura(new ItemFactura(costoDiario, "Días de alojamiento", diasEstadia), true); if (diasReserva != diasEstadia) { AgregarItemFactura(new ItemFactura(costoDiario, "Días de alojamiento no utilizados", diasReserva - diasEstadia), true); } foreach (Consumo c in consumos) { AgregarItemFactura(new ItemFactura(c), true); } RegimenDAO rDAO = new RegimenDAO(); Regimen regimen = rDAO.ObtenerRegimenDeEstadia(estadia); if (regimen.Equals(rDAO.ObtenerRegimenAllInclusive())) // es all inclusive? descuento todo { AgregarItemFactura(new ItemFactura( -consumos.Select(c => c.Cantidad * c.Consumible.Precio).Sum(), "Descuento por régimen All Inclusive", 1), true); } else if (regimen.Equals(rDAO.ObtenerRegimenAllInclusiveModerado())) // es moderado? 50% off { AgregarItemFactura(new ItemFactura( -0.5 * consumos.Select(c => c.Cantidad * c.Consumible.Precio).Sum(), "Descuento por régimen All Inclusive moderado", 1), true); } ActualizarPrecioFinal(); }
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Equals("")) { MessageBox.Show("Debe ingresar un código de reserva válido para poder avanzar", "ERROR"); return; } Tuple <Estadia, Reserva> Data = new EstadiaDAO().ObtenerDatosEstadiaFacturacion( Convert.ToInt32(textBox1.Text)); if (Data.Item1 == null || Data.Item2 == null) { MessageBox.Show("No se puede iniciar el proceso de facturación. Esto puede deberse a que " + "el código es inválido, la factura ya se haya realizado, la estadía esté en curso o " + "que los consumos no hayan sido cerrados", "ERROR"); return; } this.estadia = Data.Item1; this.reserva = Data.Item2; textBox5.Text = estadia.Fecha_Inicio.Value.ToString("dd/MM/yyyy"); textBox5.Tag = estadia.Fecha_Inicio; textBox4.Text = estadia.Fecha_Fin.Value.ToString("dd/MM/yyyy"); textBox4.Tag = estadia.Fecha_Fin; textBox2.Text = reserva.Fecha_Inicio.ToString("dd/MM/yyyy"); textBox2.Tag = reserva.Fecha_Inicio; textBox3.Text = reserva.Fecha_Fin.ToString("dd/MM/yyyy"); textBox3.Tag = reserva.Fecha_Fin; PopularItemsFacturas(); button3.Enabled = true; button2.Enabled = true; comboBox1.Enabled = true; comboBox1.SelectedIndex = 0; textBox7.Enabled = true; textBox7.Text = ""; }
static void Main(string[] args) { string op; Cliente cliente = new Cliente(); Carro carro = new Carro(); Estadia estadia = new Estadia(); double precoDaEstadia, precoTotal; do { Console.Clear(); Console.WriteLine(" -- Estacionamento XZPark -- \n"); Console.WriteLine("1 - Cadastrar Cliente"); Console.WriteLine("2 – Cadastrar Carro para um Cliente"); Console.WriteLine("3 – Entrada de Carro"); Console.WriteLine("4 – Saída de Carro"); Console.WriteLine("5 – Histórico de Movimentação do Cliente"); Console.WriteLine("6 – Histórico de Movimentação do Dia"); Console.WriteLine("0 - Sair"); Console.WriteLine("\nEscolha una opção:"); op = Console.ReadLine(); switch (op) { case "1": cliente = new Cliente(); Console.Clear(); Console.WriteLine(" -- CADASTRO DE CLIENTE -- "); Console.WriteLine("Digite o nome do cliente:"); cliente.Nome = Console.ReadLine(); Console.WriteLine("Digite o CPF do cliente:"); cliente.Cpf = Console.ReadLine(); Console.WriteLine("Digite a data de Nascimento do Cliente:"); cliente.DataDeNascimento = Convert.ToDateTime(Console.ReadLine()); try { if (ClienteDAO.AdicionarCliente(cliente)) { Console.WriteLine("Conta adicionada com sucesso!"); } else { Console.WriteLine("Conta já existente!"); } } catch (Exception e) { Console.WriteLine(e.Message); } break; case "2": carro = new Carro(); cliente = new Cliente(); Console.Clear(); Console.WriteLine(" -- CADASTRAR CARRO -- "); Console.WriteLine("Digite o CPF do Cliente:"); cliente.Cpf = Console.ReadLine(); cliente = ClienteDAO.BuscarClientePorCPF(cliente); try { if (cliente != null) { carro.Cliente = cliente; Console.WriteLine("Digite a Placa do Carro: "); carro.Placa = Console.ReadLine(); Console.WriteLine("Digite o Modelo do Carro: "); carro.Modelo = Console.ReadLine(); CarroDAO.AdicionarCarro(carro); } else { Console.WriteLine("Cliente não encontrado!"); } } catch (Exception e) { Console.WriteLine(e.Message); } break; case "3": estadia = new Estadia(); carro = new Carro(); Console.Clear(); Console.WriteLine(" -- ENTRADA DO CARRO -- \n"); Console.WriteLine("Digite a placa do carro:"); carro.Placa = Console.ReadLine(); carro = CarroDAO.BuscarCarroPorPlaca(carro); if (carro != null && carro.EstaEstacionado == false) { estadia.Carro = carro; estadia.Entrada = DateTime.Now; //Lembre-se que o SQL Server não trabalha com datas menores que 1753 //Por isso defini uma data padrão estadia.Saida = Convert.ToDateTime("01/01/1900"); //Modificando o status do carro carro.EstaEstacionado = true; try { if (EstadiaDAO.AdicionarEstadia(estadia)) { Console.WriteLine("Entrada efetuada com sucesso!"); } else { Console.WriteLine("Erro ao registrar entrada do carro!"); } } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Carro não cadastrado ou já se encontra no estacionamento!"); } break; case "4": estadia = new Estadia(); carro = new Carro(); Console.Clear(); Console.WriteLine(" -- SAÍDA DO CARRO -- \n"); Console.WriteLine("Digite a placa do carro:"); carro.Placa = Console.ReadLine(); estadia = EstadiaDAO.BuscarEstadiaDeCarroEstacionado(carro); if (estadia != null) { estadia.Saida = DateTime.Now; //Modificando o status do carro estadia.Carro.EstaEstacionado = false; try { if (EstadiaDAO.AlterarEstadia(estadia)) { precoDaEstadia = Calculos.CalcularEstadia(estadia); Console.WriteLine("Preço total: " + precoDaEstadia.ToString("C2")); Console.WriteLine("Saída efetuada com sucesso!"); } else { Console.WriteLine("Erro ao registrar a saída do carro!"); } } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Carro não se encontra no estacionamento!"); } break; case "5": cliente = new Cliente(); precoTotal = 0; Console.Clear(); Console.WriteLine(" -- LISTAR ESTADIAS POR CLIENTE -- \n"); Console.WriteLine("Digite CPF do cliente:"); cliente.Cpf = Console.ReadLine(); cliente = ClienteDAO.BuscarClientePorCPF(cliente); if (cliente != null) { Console.WriteLine("\nNome: " + cliente.Nome + "\n"); foreach (Estadia estadiaCadastrada in EstadiaDAO.BuscarEstadiasPorCliente(cliente)) { Console.WriteLine("\tCarro: " + estadiaCadastrada.Carro.Placa); Console.WriteLine("\tModelo: " + estadiaCadastrada.Carro.Modelo); Console.WriteLine("\tEntrada: " + estadiaCadastrada.Entrada); Console.WriteLine("\tSaída: " + estadiaCadastrada.Saida); precoDaEstadia = Calculos.CalcularEstadia(estadiaCadastrada); Console.WriteLine("\tPreço total: " + precoDaEstadia.ToString("C2") + "\n"); precoTotal += precoDaEstadia; } Console.WriteLine("Total: " + precoTotal.ToString("C2")); } else { Console.WriteLine("Cliente não encontrado!"); } break; case "6": precoTotal = 0; Console.Clear(); Console.WriteLine(" -- LISTAR ESTADIAS POR DATA -- \n"); Console.WriteLine("\nDigite uma data: " + cliente.Nome); DateTime data = Convert.ToDateTime(Console.ReadLine()); foreach (Estadia estadiaCadastrada in EstadiaDAO.BuscarEstadiasPorData(data)) { Console.WriteLine("\tCliente: " + estadiaCadastrada.Carro.Cliente.Nome); Console.WriteLine("\tCarro: " + estadiaCadastrada.Carro.Placa); Console.WriteLine("\tModelo: " + estadiaCadastrada.Carro.Modelo); Console.WriteLine("\tEntrada: " + estadiaCadastrada.Entrada); Console.WriteLine("\tSaída: " + estadiaCadastrada.Saida); precoDaEstadia = Calculos.CalcularEstadia(estadiaCadastrada); Console.WriteLine("\tPreço total: " + precoDaEstadia.ToString("C2") + "\n"); precoTotal += precoDaEstadia; } Console.WriteLine("Total: " + precoTotal.ToString("C2")); break; case "0": Console.WriteLine("\nSaindo..."); break; default: Console.WriteLine("\nOpção inválida!"); break; } Console.WriteLine("\nPressione uma tecla para continuar..."); Console.ReadKey(); } while (!op.Equals("0")); }