コード例 #1
0
        public MovimentacaoVeiculo CriarAtualizarMovimentacaoVeiculo(string placa, DateTime dataHoraAtual)
        {
            MovimentacaoVeiculo moviVeic = BuscarMovimentacaoVeiculoEmAberto(placa);

            dataHoraAtual = dataHoraAtual.AddSeconds(dataHoraAtual.Second * -1);
            dataHoraAtual = dataHoraAtual.AddMilliseconds(dataHoraAtual.Millisecond * -1);

            if (moviVeic == null)
            {
                moviVeic = new MovimentacaoVeiculo()
                {
                    placa         = placa,
                    entrada       = dataHoraAtual,
                    idTabelaPreco = _tabePrecMode.BuscarIdTabelaPreco(dataHoraAtual)
                }
            }
            ;

            else if (moviVeic.idTabelaPreco <= 0)
            {
                moviVeic.idTabelaPreco = _tabePrecMode.BuscarIdTabelaPreco(moviVeic.entrada);
            }

            if (moviVeic.handle > 0)
            {
                moviVeic.saida = dataHoraAtual;
            }

            if (moviVeic.tabelaPreco == null)
            {
                moviVeic.tabelaPreco = _tabePrecRepo.Buscar(tabe => tabe.handle == moviVeic.idTabelaPreco).FirstOrDefault();
            }

            return(moviVeic);
        }
コード例 #2
0
        public void ValidarCalculoValorTotalEstacionamentoHoraAdicional()
        {
            string   placaTeste    = "ASD1234";
            DateTime dataHoraAtual = DateTime.Now;

            ZerarMovimentacao();
            ZerarTabelaPrecos();

            _tabePrecRepo.Adicionar(new Entidades.TabelaPreco()
            {
                descricao          = "Teste Movimentacao",
                inicioVigencia     = new DateTime(DateTime.Now.Year, 01, 01),
                finalVigencia      = new DateTime(DateTime.Now.Year, 12, 31),
                valorHoraAdicional = 2,
                valorHoraInicial   = 4
            });
            _tabePrecRepo.Salvar();

            _moviVeicRepo.Adicionar(_moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual));
            _moviVeicRepo.Salvar();

            MovimentacaoVeiculo movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual.AddMinutes(71));

            Assert.IsTrue(movimentacao.valorTotal == 6, "Deveria estar cobrando o valor da hora inicial.");

            movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual.AddMinutes(141));
            Assert.IsTrue(movimentacao.valorTotal == 6, "Deveria estar cobrando o valor da hora inicial.");

            movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual.AddMinutes(142));
            Assert.IsTrue(movimentacao.valorTotal == 8, "Deveria estar cobrando o valor da hora inicial.");

            movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual.AddMinutes(213));
            Assert.IsTrue(movimentacao.valorTotal == 10, "Deveria estar cobrando o valor da hora inicial.");
        }
コード例 #3
0
        public void ValidarCalculoValorTotalEstacionamentoMenorIgualTrintaMinutos()
        {
            string   placaTeste    = "ASD1234";
            DateTime dataHoraAtual = DateTime.Now;

            ZerarMovimentacao();
            ZerarTabelaPrecos();

            _tabePrecRepo.Adicionar(new Entidades.TabelaPreco()
            {
                descricao          = "Teste Movimentacao",
                inicioVigencia     = new DateTime(DateTime.Now.Year, 01, 01),
                finalVigencia      = new DateTime(DateTime.Now.Year, 12, 31),
                valorHoraAdicional = 2,
                valorHoraInicial   = 4
            });
            _tabePrecRepo.Salvar();

            _moviVeicRepo.Adicionar(_moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual));
            _moviVeicRepo.Salvar();

            MovimentacaoVeiculo movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual.AddMinutes(29));

            Assert.IsTrue(movimentacao.valorTotal == 2, "Deveria estar cobrando metado do valor da hora inicial pois se passou menos que 30 minutos.");

            movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual.AddMinutes(30));
            Assert.IsTrue(movimentacao.valorTotal == 2, "Deveria estar cobrando metado do valor da hora inicial pois se passou menos que 30 minutos.");
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            MovimentacaoVeiculo movimentacaoVeiculo = movimentacaoveiculoregras.buscarporID(id);

            movimentacaoveiculoregras.Remover(movimentacaoVeiculo);
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public async Task RegistrarSaidaVeiculo(MovimentacaoVeiculo movimentoVeiculoToBeUpdated, MovimentacaoVeiculo movimentacaoVeiculo)
        {
            movimentoVeiculoToBeUpdated.DataSaida   = movimentacaoVeiculo.DataSaida;
            movimentoVeiculoToBeUpdated.DataEntrada = movimentacaoVeiculo.DataEntrada;

            await _unitOfWork.CommitAsync();
        }
コード例 #6
0
        public async Task <MovimentacaoVeiculo> CreateMovimentacao(MovimentacaoVeiculo movimentacaoVeiculo)
        {
            await _unitOfWork.MovimentacaoVeiculos
            .AddAsync(movimentacaoVeiculo);

            await _unitOfWork.CommitAsync();

            return(movimentacaoVeiculo);
        }
コード例 #7
0
        // GET: MovimentacaoVeiculos/Details/5
        public ActionResult Details(int id)
        {
            MovimentacaoVeiculo movimentacaoVeiculo = movimentacaoveiculoregras.buscarporID(id);

            if (movimentacaoVeiculo == null)
            {
                return(HttpNotFound());
            }
            return(View(movimentacaoVeiculo));
        }
コード例 #8
0
        public ActionResult Edit([Bind(Include = "Id,DataHoraEntrada,DataHoraSaida,PlacaVeiculo,UsuarioId,ModeloVeiculoId,ClienteId,VagaId")] MovimentacaoVeiculo movimentacaoVeiculo)
        {
            if (ModelState.IsValid)
            {
                movimentacaoveiculoregras.Atualizar(movimentacaoVeiculo);
                return(RedirectToAction("Index"));
            }

            ViewBag.MensalistaId  = new SelectList(mensalistaregras.buscarTodos(), "Id", "Id", movimentacaoVeiculo.MensalistaId);
            ViewBag.TipoVeiculoId = new SelectList(tipoVeiculoRegras.buscarTodos(), "Id", "Nome", movimentacaoVeiculo.TipoVeiculoId);
            ViewBag.UsuarioId     = new SelectList(usuarioregras.buscarTodos(), "Id", "Nome", movimentacaoVeiculo.UsuarioId);
            ViewBag.VagaId        = new SelectList(vagaregras.buscarTodos(), "Id", "Numero", movimentacaoVeiculo.VagaId);
            return(View(movimentacaoVeiculo));
        }
コード例 #9
0
        public ActionResult Gravar(MovimentacaoVeiculo moviVeic)
        {
            if (moviVeic.handle > 0)
            {
                moviVeicRepo.Atualizar(moviVeic);
            }
            else
            {
                moviVeicRepo.Adicionar(moviVeic);
            }

            moviVeicRepo.Salvar();

            return(RedirectToAction("Index"));
        }
コード例 #10
0
        // GET: MovimentacaoVeiculos/Edit/5
        public ActionResult Edit(int id)
        {
            MovimentacaoVeiculo movimentacaoVeiculo = movimentacaoveiculoregras.buscarporID(id);

            if (movimentacaoVeiculo == null)
            {
                return(HttpNotFound());
            }

            ViewBag.MensalistaId  = new SelectList(mensalistaregras.buscarTodos(), "Id", "Id", movimentacaoVeiculo.MensalistaId);
            ViewBag.TipoVeiculoId = new SelectList(tipoVeiculoRegras.buscarTodos(), "Id", "Nome", movimentacaoVeiculo.TipoVeiculoId);
            ViewBag.UsuarioId     = new SelectList(usuarioregras.buscarTodos(), "Id", "Nome", movimentacaoVeiculo.UsuarioId);
            ViewBag.VagaId        = new SelectList(vagaregras.buscarTodos(), "Id", "Numero", movimentacaoVeiculo.VagaId);
            return(View(movimentacaoVeiculo));
        }
コード例 #11
0
        public MovimentacaoVeiculo BuscarMovimentacaoVeiculoEmAberto(string placa)
        {
            MovimentacaoVeiculoRepositorio moviVeicRepo = new MovimentacaoVeiculoRepositorio();
            MovimentacaoVeiculo            movimentacao = null;

            var movimentacoes = moviVeicRepo.Buscar(movi => movi.placa.Equals(placa) &&
                                                    movi.saida.Equals(new DateTime())
                                                    ).ToList();

            if (movimentacoes.Count() > 0)
            {
                movimentacao = movimentacoes.First();
            }

            return(movimentacao);
        }
コード例 #12
0
        public ActionResult Registro(string numeroPlaca)
        {
            MovimentacaoVeiculoModelo moviVeicMode = new MovimentacaoVeiculoModelo();
            TabelaPrecosModelo        tabePrecMode = new TabelaPrecosModelo();

            ViewBag.FaltaConfiguracao = false;

            DateTime dataHoraAtual = DateTime.Now;

            MovimentacaoVeiculo moviVeic = moviVeicMode.CriarAtualizarMovimentacaoVeiculo(numeroPlaca, dataHoraAtual);// BuscarMovimentacaoVeiculoEmAberto(numeroPlaca);

            if (moviVeic.idTabelaPreco <= 0)
            {
                ModelState.AddModelError("", string.Format("Não foi possível determinar uma tabela de preços para a movimentação. Data e Hora da movimentação {0}", moviVeic.entrada));
                ViewBag.FaltaConfiguracao = true;
            }

            return(PartialView(moviVeic));
        }
コード例 #13
0
        public ActionResult Create(MovimentacaoVeiculo movimentacaoVeiculo)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    movimentacaoveiculoregras.Adicionar(movimentacaoVeiculo);
                    return(RedirectToAction("Index"));
                }
            }
            catch (System.Exception exp)
            {
                ModelState.AddModelError(string.Empty, exp.Message);
            }

            ViewBag.MensalistaId  = new SelectList(mensalistaregras.buscarTodos(), "Id", "Id", movimentacaoVeiculo.MensalistaId);
            ViewBag.TipoVeiculoId = new SelectList(tipoVeiculoRegras.buscarTodos(), "Id", "Nome", movimentacaoVeiculo.TipoVeiculoId);
            ViewBag.UsuarioId     = new SelectList(usuarioregras.buscarTodos(), "Id", "Nome", movimentacaoVeiculo.UsuarioId);
            ViewBag.VagaId        = new SelectList(vagaregras.buscarTodos(), "Id", "Numero", movimentacaoVeiculo.VagaId);
            return(View(movimentacaoVeiculo));
        }
コード例 #14
0
        public void ValidarCalculoValorTotalEstacionamentoSemDataSaida()
        {
            string   placaTeste    = "ASD1234";
            DateTime dataHoraAtual = DateTime.Now;

            ZerarMovimentacao();
            ZerarTabelaPrecos();

            _tabePrecRepo.Adicionar(new Entidades.TabelaPreco()
            {
                descricao          = "Teste Movimentacao",
                inicioVigencia     = new DateTime(DateTime.Now.Year, 01, 01),
                finalVigencia      = new DateTime(DateTime.Now.Year, 12, 31),
                valorHoraAdicional = 2,
                valorHoraInicial   = 4
            });
            _tabePrecRepo.Salvar();

            MovimentacaoVeiculo movimentacao = _moviVeicMode.CriarAtualizarMovimentacaoVeiculo(placaTeste, dataHoraAtual);

            Assert.IsTrue(movimentacao.valorTotal == 0, "Deveria estar retornando zero, não tam data de saída para calcular o tempo total e o valor a ser cobrado.");
        }