private void Button_Click(object sender, RoutedEventArgs e)
        {
            dynamic loc = dtaLocacoes.SelectedItem;

            Locacao lo = LocacaoDAO.BuscarPorId(loc.id);

            lo.dataEntrega    = DateTime.Now;
            lo.devolvido      = true;
            lo.veiculo.locado = false;


            if (lo.dataEntrega.Month > lo.previsaoEntrega.Month)
            {
                int dias = (lo.dataEntrega - lo.previsaoEntrega).Days;
                lo.custoVariavel = lo.veiculo.valorDiaria * dias;
                lo.totalLocacao += lo.custoVariavel;

                LocacaoDAO.Alterar(lo);
                MessageBox.Show($"Veículo entregue! Pelo atraso de {dias} dias, " +
                                $"houve a cobrança extra no valor de R$ {lo.custoVariavel}", "Locação - WPF",
                                MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else if (lo.dataEntrega.Day > lo.previsaoEntrega.Day)
            {
                int atraso = lo.dataEntrega.Day - lo.previsaoEntrega.Day;
                lo.custoVariavel = lo.veiculo.valorDiaria * atraso;
                lo.totalLocacao += lo.custoVariavel;

                LocacaoDAO.Alterar(lo);
                MessageBox.Show($"Veículo entregue! Pelo atraso de {atraso} dias, " +
                                $"houve a cobrança extra no valor de R$ {lo.custoVariavel}", "Locação - WPF",
                                MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else if (lo.dataEntrega.Day < lo.previsaoEntrega.Day)
            {
                int dias = lo.previsaoEntrega.Day - lo.dataEntrega.Day;
                lo.custoVariavel = lo.veiculo.valorDiaria * dias;
                lo.totalLocacao -= lo.custoVariavel;

                if (lo.totalLocacao == 0)
                {
                    lo.custoVariavel -= lo.veiculo.valorDiaria;
                    lo.totalLocacao   = lo.veiculo.valorDiaria;

                    LocacaoDAO.Alterar(lo);
                    MessageBox.Show($"Veículo entregue! Pela entrega antecipada de {dias} dias, " +
                                    $"houve o desconto de R$ {lo.custoVariavel}", "Locação - WPF",
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    LocacaoDAO.Alterar(lo);
                    MessageBox.Show($"Veículo entregue! Pela entrega antecipada de {dias} dias, " +
                                    $"houve o desconto de R$ {lo.custoVariavel}", "Locação - WPF",
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            else
            {
                LocacaoDAO.Alterar(lo);
                MessageBox.Show($"Veículo entregue na data esperada!", "Locação - WPF",
                                MessageBoxButton.OK, MessageBoxImage.Information);
            }

            List <Locacao> vazia = new List <Locacao>();

            locacoesAtivas.Clear();
            dtaLocacoes.ItemsSource = vazia;
            dtaLocacoes.Items.Refresh();
            Popular();
        }
Ejemplo n.º 2
0
        public IActionResult Devolver(int id)
        {
            Locacao loc = _locacaoDAO.BuscarPorId(id);

            loc.dataEntrega = DateTime.Now;
            loc.devolvido   = true;
            Veiculo vec = _veiculoDAO.BuscarPorId(loc.vecID);

            vec.locado = false;
            _veiculoDAO.Editar(vec);


            if (loc.dataEntrega.Month > loc.previsaoEntrega.Month)
            {
                int dias = (loc.dataEntrega - loc.previsaoEntrega).Days;
                loc.custoVariavel = loc.veiculo.valorDiaria * dias;
                loc.totalLocacao += loc.custoVariavel;

                _locacaoDAO.Alterar(loc);

                /*MessageBox.Show($"Veículo entregue! Pelo atraso de {dias} dias, " +
                 *  $"houve a cobrança extra no valor de R$ {lo.custoVariavel}", "Locação - WPF",
                 *                      MessageBoxButton.OK, MessageBoxImage.Information);*/
            }
            else if (loc.dataEntrega.Day > loc.previsaoEntrega.Day)
            {
                int atraso = loc.dataEntrega.Day - loc.previsaoEntrega.Day;
                loc.custoVariavel = loc.veiculo.valorDiaria * atraso;
                loc.totalLocacao += loc.custoVariavel;

                _locacaoDAO.Alterar(loc);

                /*MessageBox.Show($"Veículo entregue! Pelo atraso de {atraso} dias, " +
                 *  $"houve a cobrança extra no valor de R$ {lo.custoVariavel}", "Locação - WPF",
                 *                      MessageBoxButton.OK, MessageBoxImage.Information);*/
            }
            else if (loc.dataEntrega.Day < loc.previsaoEntrega.Day)
            {
                int dias = loc.previsaoEntrega.Day - loc.dataEntrega.Day;
                loc.custoVariavel = loc.veiculo.valorDiaria * dias;
                loc.totalLocacao -= loc.custoVariavel;

                if (loc.totalLocacao == 0)
                {
                    loc.custoVariavel -= loc.veiculo.valorDiaria;
                    loc.totalLocacao   = loc.veiculo.valorDiaria;

                    _locacaoDAO.Alterar(loc);

                    /*MessageBox.Show($"Veículo entregue! Pela entrega antecipada de {dias} dias, " +
                     *  $"houve o desconto de R$ {lo.custoVariavel}", "Locação - WPF",
                     *                      MessageBoxButton.OK, MessageBoxImage.Information);*/
                }
                else
                {
                    _locacaoDAO.Alterar(loc);
                    //MessageBox.Show($"Veículo entregue! Pela entrega antecipada de {dias} dias, " +
                    //    $"houve o desconto de R$ {lo.custoVariavel}", "Locação - WPF",
                    //                        MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            else
            {
                _locacaoDAO.Alterar(loc);
                //MessageBox.Show($"Veículo entregue na data esperada!", "Locação - WPF",
                //                        MessageBoxButton.OK, MessageBoxImage.Information);
            }


            return(RedirectToAction("Devolucao", "Locacao"));
        }