public static MovimentacaoViewModel CriaMovimentacao(FichaViewModel Ficha, double valorAntigo, double valorNovo, bool estorno)
        {
            MovimentacaoViewModel movimentacao = new MovimentacaoViewModel()
            {
                Id_Ficha = Ficha.Id.Value
            };

            if (valorAntigo > valorNovo)
            {
                movimentacao.Valor    = valorAntigo - valorNovo;
                movimentacao.Tipo_Mov = ViewModels.Tipo_Mov.Saida;
            }
            else if (valorAntigo < valorNovo)
            {
                if (estorno == true)
                {
                    movimentacao.Valor    = valorNovo - valorAntigo;
                    movimentacao.Tipo_Mov = ViewModels.Tipo_Mov.Estorno;
                }

                else
                {
                    movimentacao.Valor    = valorNovo - valorAntigo;
                    movimentacao.Tipo_Mov = ViewModels.Tipo_Mov.Entrada;
                }
            }

            return(movimentacao);
        }
        public MovimentacaoViewModel Atualizar(MovimentacaoViewModel movimentacaoViewModel)
        {
            var movimentacaoDTO = _movimentacaoRepository.BuscarPorId(movimentacaoViewModel.Id);
            var movimentacao    = Mapper.Map(movimentacaoViewModel, movimentacaoDTO);

            return(Mapper.Map <MovimentacaoViewModel>(_movimentacaoRepository.Atualizar(movimentacao)));
        }
Ejemplo n.º 3
0
        public IActionResult Delete(int id)
        {
            var movimentacaoViewModel = new MovimentacaoViewModel {
                Id = id
            };

            _movimentacaoAppService.Excluir(movimentacaoViewModel.Id);
            return(Response(movimentacaoViewModel));
        }
Ejemplo n.º 4
0
        public IActionResult Put([FromBody] MovimentacaoViewModel movimentacaoViewModel)
        {
            if (!ModelStateValida())
            {
                return(Response());
            }

            _movimentacaoAppService.Atualizar(movimentacaoViewModel);
            return(Response(movimentacaoViewModel));
        }
Ejemplo n.º 5
0
        public IActionResult Put(int id, [FromBody] MovimentacaoViewModel movimentacaoVm)
        {
            _movimentacaoAppService.Update(movimentacaoVm);

            if (!IsValidOperation())
            {
                return(Response(movimentacaoVm, "Falha ao salvar a movimentação."));
            }

            return(Response(movimentacaoVm, "A movimentação foi salva com sucesso!"));
        }
Ejemplo n.º 6
0
        public void Atualizar(MovimentacaoViewModel model)
        {
            var domain = _mapper.Map <Movimentacao>(model);

            if (!Notifications.HasNotifications())
            {
                _movimentacaoRepository.Atualizar(domain);
                if (!Commit())
                {
                    //todo: falha ao salvar
                }
            }
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Post([FromBody] MovimentacaoViewModel movimentacaoVm)
        {
            var taskId = _movimentacaoAppService.Register(movimentacaoVm);

            if (!IsValidOperation())
            {
                return(Response(movimentacaoVm, "Falha ao salvar a movimentação."));
            }

            movimentacaoVm = _movimentacaoAppService.GetById(await taskId);

            return(Response(movimentacaoVm, "A movimentação foi salva com sucesso!"));
        }
        public static Movimentacao TransformarViewEmModel(this MovimentacaoViewModel viewModel, Movimentacao entidade)
        {
            bool possuiEntrada = DateTime.TryParse(viewModel.EntrouEm, out DateTime entrada);
            bool possuiSaida   = DateTime.TryParse(viewModel.SaiuEm, out DateTime saida);

            entidade.Id        = viewModel.Id;
            entidade.EntrouEm  = possuiEntrada ? entrada : entidade.EntrouEm;
            entidade.SaiuEm    = possuiSaida ? saida : (DateTime?)null;
            entidade.VeiculoId = viewModel.VeiculoId != 0 ? viewModel.VeiculoId : entidade.VeiculoId;
            entidade.Valor     = viewModel.Valor;

            return(entidade);
        }
Ejemplo n.º 9
0
        public ActionResult Index(string d = "", int f = 0)
        {
            ViewBag.Funcionarios = new FuncionarioRepository().GetAll();

            var movimentacoes = _repository.Listar(f, d);

            var viewModel = new MovimentacaoViewModel
            {
                Movimentacoes = movimentacoes
            };

            return(View(viewModel));
        }
Ejemplo n.º 10
0
        public MovimentacaoViewModel Adicionar(MovimentacaoViewModel model)
        {
            var domain = _mapper.Map <Movimentacao>(model);

            if (!Notifications.HasNotifications())
            {
                _movimentacaoRepository.Adicionar(domain);
                if (!Commit())
                {
                    //todo: falha ao salvar
                }
            }
            return(_mapper.Map <MovimentacaoViewModel>(domain));
        }
Ejemplo n.º 11
0
        private void InicializarObjetos()
        {
            //Dados fake
            contaCorrenteOrigemModel = new Faker <ContaCorrenteViewModel>()
                                       .RuleFor(c => c.CodigoAgencia, f => f.Random.Number(1, 10))
                                       .RuleFor(c => c.Id, f => f.Random.Guid())
                                       .RuleFor(c => c.NumeroConta, f => f.Random.Number(10000, 20000))
                                       .RuleFor(c => c.Saldo, f => f.Random.Decimal(100, 50000));

            contaCorrenteDestinoModel = new Faker <ContaCorrenteViewModel>()
                                        .RuleFor(c => c.CodigoAgencia, f => f.Random.Number(1, 10))
                                        .RuleFor(c => c.Id, f => f.Random.Guid())
                                        .RuleFor(c => c.NumeroConta, f => f.Random.Number(10000, 20000))
                                        .RuleFor(c => c.Saldo, f => 1000);

            movimentacaoModel = new Faker <MovimentacaoViewModel>()
                                .RuleFor(x => x.ContaDestino, contaCorrenteDestinoModel)
                                .RuleFor(x => x.ContaOrigem, contaCorrenteOrigemModel)
                                .RuleFor(x => x.Valor, f => f.Random.Decimal(10, 50));

            movimentacaoErroModel = new Faker <MovimentacaoViewModel>()
                                    .RuleFor(x => x.ContaDestino, contaCorrenteDestinoModel)
                                    .RuleFor(x => x.ContaOrigem, contaCorrenteOrigemModel)
                                    .RuleFor(x => x.Valor, 0);

            contaCorrenteOrigem = new Faker <Conta>()
                                  .RuleFor(x => x.CodigoAgencia, contaCorrenteOrigemModel.CodigoAgencia)
                                  .RuleFor(x => x.Id, contaCorrenteOrigemModel.Id)
                                  .RuleFor(x => x.NumeroConta, contaCorrenteOrigemModel.NumeroConta)
                                  .RuleFor(x => x.Saldo, contaCorrenteOrigemModel.Saldo);

            contaCorrenteDestino = new Faker <Conta>()
                                   .RuleFor(x => x.CodigoAgencia, contaCorrenteDestinoModel.CodigoAgencia)
                                   .RuleFor(x => x.Id, contaCorrenteDestinoModel.Id)
                                   .RuleFor(x => x.NumeroConta, contaCorrenteDestinoModel.NumeroConta)
                                   .RuleFor(x => x.Saldo, contaCorrenteDestinoModel.Saldo);

            contas = new List <Conta>()
            {
                contaCorrenteOrigem, contaCorrenteDestino
            };


            _contaCorrenteRepository.Setup(r => r.Listar()).Returns(contas.AsQueryable());
            _unitOfWork.Setup(r => r.Commit());
            _contaCorrenteRepository.Setup(r => r.Adicionar(contaCorrenteOrigem));
            _contaCorrenteRepository.Setup(r => r.Adicionar(contaCorrenteDestino));
            _movimentacaoService.Setup(s => s.ExecutarMovimentacao(contaCorrenteOrigem, contaCorrenteDestino, movimentacaoModel.Valor)).Returns(1100);
            _movimentacaoService.Setup(s => s.ExecutarMovimentacao(contaCorrenteOrigem, contaCorrenteDestino, 0)).Throws(new BusinessException(Domain.Enums.EBusinessErrors.SaldoInsuficiente, "Erro"));
        }
        public IActionResult Post([FromBody] MovimentacaoViewModel model)
        {
            try
            {
                var contaOrigem  = _mapper.Map <Conta>(model.ContaOrigem);
                var contaDestino = _mapper.Map <Conta>(model.ContaDestino);

                var resultado = _movimentacaoService.ExecutarMovimentacao(contaOrigem, contaDestino, model.Valor);

                return(Ok(new
                {
                    saldo = resultado,
                    sucesso = true
                }));
            }
            catch (BusinessException ex)
            {
                return(StatusCode(StatusCodes.Status400BadRequest, new
                {
                    sucesso = false,
                    erros = new
                    {
                        Type = "BusinessException",
                        Code = ex.Code,
                        Message = ex.Message
                    }
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new
                {
                    sucesso = false,
                    erros = new
                    {
                        Type = ex.GetType().Name,
                        Message = ex.Message
                    }
                }));
            }
        }
        public MovimentacaoViewModel Criar(MovimentacaoViewModel movimentacaoViewModel)
        {
            var movimentacao = Mapper.Map <Movimentacao>(movimentacaoViewModel);

            return(Mapper.Map <MovimentacaoViewModel>(movimentacao));
        }