public async Task <IActionResult> Edit(int id, [Bind("CNPJ,RazaoSocial,CartaoID,Nome,Telefone")] CartaoPessoaJuridica cartaoPessoaJuridica)
        {
            if (id != cartaoPessoaJuridica.CartaoID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cartaoPessoaJuridica);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CartaoPessoaJuridicaExists(cartaoPessoaJuridica.CartaoID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(cartaoPessoaJuridica));
        }
        public async Task <IActionResult> Edit(int id, [Bind("CPF,Sexo,DataNascimento,RG,CartaoID,Nome,Telefone, Endereco")] CartaoPessoaFisica cartaoPessoaFisica)
        {
            if (id != cartaoPessoaFisica.CartaoID)
            {
                return(NotFound());
            }

            //if (CPFExists(cartaoPessoaFisica) )
            //{
            //    TempData["cpf"] = "CPF já cadastrado.";
            //    return View(cartaoPessoaFisica);
            //}

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cartaoPessoaFisica);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CartaoPessoaFisicaExists(cartaoPessoaFisica.CartaoID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(cartaoPessoaFisica));
        }
Esempio n. 3
0
        public async Task <IActionResult> Saida(string placa)
        {
            if (placa == null)
            {
                return(NotFound());
            }
            var tabelaPrecos = _context.TabelaPrecos.Where(x => x.DataInicio <= DateTime.Today && x.DataFim >= DateTime.Today).FirstOrDefault();
            var retorno      = await _context.ControleEstacionamento.Where(c => c.Placa == placa && c.DataSaida == null).FirstAsync();

            retorno.DataSaida = DateTime.Now;

            TimeSpan tempoTotal   = (TimeSpan)(retorno.DataSaida - retorno.DataEntrada);
            Decimal  valorCobrado = 0;

            if (tempoTotal.Hours == 0 && tempoTotal.Minutes <= 30)
            {
                valorCobrado = tabelaPrecos.PrecoInicial / 2;
            }
            else if ((tempoTotal.Hours == 0 && tempoTotal.Minutes > 30) || (tempoTotal.Hours == 1 && tempoTotal.Minutes <= 10))
            {
                valorCobrado = tabelaPrecos.PrecoInicial;
            }
            else if (tempoTotal.Hours >= 1 && tempoTotal.Minutes <= 10)
            {
                valorCobrado = ((tempoTotal.Hours - 1) * tabelaPrecos.PrecoAdicional) + tabelaPrecos.PrecoInicial;
            }
            else
            {
                valorCobrado = (tempoTotal.Hours * tabelaPrecos.PrecoAdicional) + tabelaPrecos.PrecoInicial;
            }
            retorno.TempoTotal   = tempoTotal;
            retorno.ValorCobrado = valorCobrado;

            _context.Update(retorno);
            await _context.SaveChangesAsync();

            if (retorno == null)
            {
                return(NotFound());
            }

            return(View(retorno));
        }
        public ActionResult <BaixaModel> Baixa(string placa)
        {
            var veiculo = new Veiculo();
            var patio   = new Patio();

            var query =
                (from p in bd.Patios
                 where p.veiculoPlaca == placa && p.dataFim == null
                 select p).SingleOrDefault();

            if (query == null)
            {
                return(BadRequest("Esse veiculo nao esta no patio!"));
            }

            patio = query;

            var      dataAtual = DateTime.Now;
            double   duracao;
            float    valor;
            TimeSpan castDuracao;
            DateTime dataIni;

            dataIni = patio.dataInicio;

            castDuracao = dataAtual - dataIni;

            duracao = (int)castDuracao.TotalMinutes;

            if (duracao <= 30)
            {
                valor = 5;
            }
            else
            {
                valor = (int)(duracao / 30) * 5;
            }

            patio.tempo   = duracao;
            patio.dataFim = dataAtual;
            patio.valor   = valor;

            bd.Update(patio);
            bd.SaveChanges();

            // var teste = patio.veiculoPlaca;

            var saida =
                (from p in bd.Patios
                 join v in bd.Veiculos on p.veiculoPlaca equals v.placa
                 where v.placa == placa && p.id == patio.id

                 select new BaixaModel
            {
                placa = v.placa,
                marca = v.marca,
                modelo = v.modelo,
                cor = v.cor,
                entrada = p.dataInicio,
                saida = p.dataFim.Value,
                tempo = p.tempo.Value,
                valor = p.valor.Value
            }).SingleOrDefault();


            return(Ok(saida));

            //var saida =
            //    (from p in bd.Patios
            //     join v in bd.Veiculos on p.veiculoPlaca equals v.placa
            //     where v.placa == placa

            //     select new BaixaModel
            //     {
            //         placa = v.placa,
            //         marca = v.marca,
            //         modelo = v.modelo,
            //         cor = v.cor,
            //         entrada = p.dataInicio,
            //         saida = p.dataFim.Value,
            //         tempo = p.tempo.Value,
            //         valor = p.valor.Value
            //     }).ToList();



            //return Ok(saida.OrderByDescending(d=> d.saida).FirstOrDefault());
        }
        public ActionResult <BaixaModel> Baixa(string placa)
        {
            var veiculo = new Veiculo();
            var patio   = new Patio();

            var query =
                (from p in bd.Patios
                 where p.VeiculoPlaca == placa && p.DataFim == null
                 select p).SingleOrDefault();

            if (query == null)
            {
                return(BadRequest("Esse veiculo nao esta no patio!"));
            }

            patio = query;

            var      dataAtual = DateTime.Now;
            double   duracao;
            float    valor;
            TimeSpan castDuracao;
            DateTime dataIni;

            dataIni = patio.DataInicio;

            castDuracao = dataAtual - dataIni;

            duracao = (int)castDuracao.TotalMinutes;

            if (duracao <= 30)
            {
                valor = 5;
            }
            else
            {
                valor = (int)(duracao / 30) * 5;
            }

            patio.Tempo   = duracao;
            patio.DataFim = dataAtual;
            patio.Valor   = valor;

            bd.Update(patio);
            bd.SaveChanges();

            // var teste = patio.veiculoPlaca;

            var saida =
                (from p in bd.Patios
                 join v in bd.Veiculos on p.VeiculoPlaca equals v.Placa
                 where v.Placa == placa && p.Id == patio.Id

                 select new BaixaModel
            {
                Placa = v.Placa,
                Marca = v.Marca,
                Modelo = v.Modelo,
                Cor = v.Cor,
                Entrada = p.DataInicio,
                Saida = p.DataFim.Value,
                Tempo = p.Tempo.Value,
                Valor = p.Valor.Value
            }).SingleOrDefault();


            return(Ok(saida));
        }