public ADSResposta Excluir(MovimentoView c)
        {
            try
            {
                using (var db = DBCore.NovaInstanciaDoBanco())
                {
                    var id     = int.Parse(c.Codigo);
                    var objeto = db.Movimentos.Where(w => w.Codigo.Equals(id)).FirstOrDefault();

                    if (objeto == null)
                    {
                        return(new ADSResposta(sucesso: false, mensagem: "Movimento não encontrado.", objeto: c));
                    }

                    db.Movimentos.Remove(objeto);

                    db.SaveChanges();

                    return(new ADSResposta(sucesso: true, objeto: objeto));
                }
            }
            catch (Exception ex)
            {
                return(new ADSResposta(false, ex.Message, c));
            }
        }
Esempio n. 2
0
        public IActionResult PutMovimento([FromBody] MovimentoView value)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }
                else
                {
                    var movimento = business.ObterPorId(value.Id);
                    if (movimento == null)
                    {
                        return(NotFound(new { Mensagem = $"O movimento id: {value.Id} informado não existe no banco de dados." }));
                    }

                    business.Alterar(value);
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { Mensagem = ex.Message.ToString() }));
            }
        }
Esempio n. 3
0
        private Movimento ObterModel(MovimentoView view)
        {
            if (view.EtiquetaId <= 0 || view.EtiquetaId.Equals(int.MinValue))
            {
                throw new ArgumentException("O campo de 'EtiquetaId' é obrigatório e deve ser preenchido corretamente.");
            }

            if (view.PessoaId <= 0 || view.PessoaId.Equals(int.MinValue))
            {
                throw new ArgumentException("O campo de 'PessoaId' é obrigatório e deve ser preenchido corretamente.");
            }

            Etiqueta etiqueta = repoEtiqueta.ObterPorId(view.EtiquetaId);

            if (etiqueta == null)
            {
                throw new Exception($"A EtiquetaId  '{view.EtiquetaId}' informada não existe no banco de dados! Campo obrigatório.");
            }

            Pessoa pessoa = repoPessoa.ObterPorId(view.PessoaId);

            if (etiqueta == null)
            {
                throw new Exception($"A PessoaId '{view.PessoaId}' informada não existe no banco de dados! Campo obrigatório.");
            }

            ContaCartao contaCartao = null;

            if (view.ContaCartaoId.HasValue)
            {
                contaCartao = repoContaCartao.ObterPorId(view.ContaCartaoId.Value);

                if (contaCartao == null)
                {
                    throw new Exception($"A ContaCartaoId '{view.ContaCartaoId.Value}' informada não existe no banco de dados!");
                }
            }

            return(new Movimento()
            {
                Id = view.Id,
                Cadastro = view.Cadastro,
                Tipo = view.Tipo.StringParaTipoMovimento(),
                Vencimento = view.Vencimento,
                Status = view.Status.StringParaStatusMovimento(),
                Descricao = view.Descricao,
                Valor = view.Valor,
                ValorPago = view.ValorPago,
                EtiquetaId = view.EtiquetaId,
                Etiqueta = etiqueta,
                PessoaId = view.PessoaId,
                Pessoa = pessoa,
                ContaCartao = contaCartao
            });
        }
Esempio n. 4
0
        public ADSResposta Salvar(MovimentoView c)
        {
            var resposta = new ADSResposta();

            using (var db = DBCore.NovaInstanciaDoBanco())
            {
                using (var transacao = db.Database.BeginTransaction())
                {
                    try
                    {
                        Movimento novo = null;

                        if (!c.Codigo.Equals("0"))
                        {
                            var id = int.Parse(c.Codigo);
                            novo                     = db.Movimentos.Where(w => w.Codigo.Equals(id)).FirstOrDefault();
                            novo.Descricao           = c.Descricao;
                            novo.Data                = DateTime.Parse(c.Data);
                            novo.Valor               = c.Valor;
                            novo.CategoriaCodigo     = c.CategoriaCodigo;
                            novo.ContaCodigo         = c.ContaCodigo;
                            novo.TipoMovimentoCodigo = c.TipoMovimentoCodigo;
                            novo.Efetivado           = c.Efetivado ? "S" : "N";
                        }
                        else
                        {
                            novo                     = db.Movimentos.Create();
                            novo.Descricao           = c.Descricao;
                            novo.Data                = DateTime.Parse(c.Data);
                            novo.Valor               = c.Valor;
                            novo.CategoriaCodigo     = c.CategoriaCodigo;
                            novo.ContaCodigo         = c.ContaCodigo;
                            novo.TipoMovimentoCodigo = c.TipoMovimentoCodigo;
                            novo.Efetivado           = c.Efetivado ? "S" : "N";

                            db.Movimentos.Add(novo);
                        }

                        db.SaveChanges();
                        c.Codigo         = novo.Codigo.ToString();
                        resposta.Sucesso = true;
                        resposta.Objeto  = c;
                        transacao.Commit();
                    }
                    catch (Exception ex)
                    {
                        transacao.Rollback();
                        resposta.Sucesso  = false;
                        resposta.Mensagem = ex.Message;
                    }
                }
            }
            return(resposta);
        }
Esempio n. 5
0
        public MovimentoView Incluir(MovimentoView movimentoView)
        {
            if (movimentoView.Cadastro.Equals(DateTime.MinValue))
            {
                movimentoView.Cadastro = DateTime.Now;
            }

            Movimento movimento = ObterModel(movimentoView);

            repository.Incluir(movimento);

            return(movimento.ToView());
        }
Esempio n. 6
0
        public void Alterar(MovimentoView movimentoView)
        {
            if (movimentoView.Id <= 0 || movimentoView.Id.Equals(int.MinValue))
            {
                throw new ArgumentException("O código do movimento é obrigatório.");
            }

            if (movimentoView.Saldo < 0)
            {
                throw new Exception($"O movimento id {movimentoView.Id} não pode possuir saldo negativo." +
                                    $"Ajuste o valor da baixa do título.");
            }

            Movimento movimento = ObterModel(movimentoView);

            decimal valorJahBaixado = 0M;

            if (movimento.MovimentoBaixa != null && movimento.MovimentoBaixa.Any())
            {
                valorJahBaixado = movimento.MovimentoBaixa.ToList().Sum(vl => vl.ValorBaixa);
            }

            /* Caso o usurio sete o status para cancelado */
            if (valorJahBaixado > 0 && movimento.Status.Equals(StatusMovimento.CANCELADO))
            {
                throw new Exception($"O movimento id '{movimento.Id}' já possui registro de baixa - Valor Baixado R$ {valorJahBaixado.ToString("D2")}. " +
                                    "Operação não permitida - Remova as baixas antes de realizar o cancelamento do título. ");
            }

            /* Caso o usurio sete o status para encerrado */
            if (valorJahBaixado != movimento.ValorPago && movimento.Status.Equals(StatusMovimento.ENCERRADO))
            {
                throw new Exception($"O movimento id '{movimento.Id}' não poderá ter o status para 'ENCERRADO' " +
                                    $"pois o valor baixado não é igual ao valor pago.");
            }

            if (!movimento.Status.Equals(StatusMovimento.CANCELADO))
            {
                if (movimento.Saldo > 0)
                {
                    movimento.Status = StatusMovimento.PENDENTE;
                }
                else if (movimento.Saldo == 0)
                {
                    movimento.Status = StatusMovimento.ENCERRADO;
                }
            }

            repository.DetachLocal(mov => mov.Id == movimento.Id);
            repository.Alterar(movimento);
        }
Esempio n. 7
0
        public MovimentoView PegaPorCodigo(int id)
        {
            var objeto = DBCore.InstanciaDoBanco().Movimentos
                         .Where(w => w.Codigo.Equals(id))
                         .FirstOrDefault();

            MovimentoView resposta = null;

            if (objeto != null)
            {
                resposta = ConverteParaView(objeto);
            }

            return(resposta);
        }
        public ADSResposta Salvar(MovimentoView c)
        {
            var db = DBCore.InstanciaDoBanco();

            Movimento novo = null;

            if (!c.Codigo.Equals("0"))
            {
                var id = int.Parse(c.Codigo);
                novo                     = db.Movimentos.Where(w => w.Codigo.Equals(id)).FirstOrDefault();
                novo.Descricao           = c.Descricao;
                novo.Data                = DateTime.Parse(c.Data);
                novo.Valor               = c.Valor;
                novo.CategoriaCodigo     = c.CategoriaCodigo;
                novo.ContaCodigo         = c.ContaCodigo;
                novo.TipoMovimentoCodigo = c.TipoMovimentoCodigo;
                novo.Efetivado           = c.Efetivado ? "S" : "N";
            }
            else
            {
                novo                     = db.Movimentos.Create();
                novo.Descricao           = c.Descricao;
                novo.Data                = DateTime.Parse(c.Data);
                novo.Valor               = c.Valor;
                novo.CategoriaCodigo     = c.CategoriaCodigo;
                novo.ContaCodigo         = c.ContaCodigo;
                novo.TipoMovimentoCodigo = c.TipoMovimentoCodigo;
                novo.Efetivado           = c.Efetivado ? "S" : "N";

                db.Movimentos.Add(novo);
            }

            try
            {
                db.SaveChanges();

                c.Codigo = novo.Codigo.ToString();

                return(new ADSResposta(true, objeto: c));
            }
            catch (Exception ex)
            {
                return(new ADSResposta(false, ex.Message, c));
            }
        }
Esempio n. 9
0
        public IActionResult PostMovimento([FromBody] MovimentoView value)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }
                else
                {
                    MovimentoView movimento = business.Incluir(value);

                    var uri = Url.Action("GetMovimentoPorId", new { id = movimento.Id });
                    return(Created(uri, movimento));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { Mensagem = ex.Message.ToString() }));
            }
        }
Esempio n. 10
0
        public ADSResposta Excluir(MovimentoView c)
        {
            var resposta = new ADSResposta();

            using (var db = DBCore.NovaInstanciaDoBanco())
            {
                using (var transacao = db.Database.BeginTransaction())
                {
                    try
                    {
                        var id        = int.Parse(c.Codigo);
                        var movimento = db.Movimentos.Where(w => w.Codigo.Equals(id)).FirstOrDefault();

                        if (movimento == null)
                        {
                            resposta.Sucesso  = false;
                            resposta.Objeto   = c;
                            resposta.Mensagem = "Movimento não encontrado.";
                        }
                        else
                        {
                            db.Movimentos.Remove(movimento);
                            db.SaveChanges();

                            resposta.Sucesso = true;
                            resposta.Objeto  = c;
                            transacao.Commit();
                        }
                    }
                    catch (Exception ex)
                    {
                        transacao.Rollback();
                        resposta.Sucesso  = false;
                        resposta.Mensagem = ex.Message;
                    }
                }
            }
            return(resposta);
        }
Esempio n. 11
0
        public ActionResult Create(MovimentoView movimentoView)
        {
            _logger.Info("Create [INICIO]|movimentoView: {0}", movimentoView.SerializarXML());

            Movimento adicionarMovimentoRequest =
                _mapper.Map <MovimentoView, Movimento>(movimentoView);

            bool resultado = _movimentoServico.Adicionar(adicionarMovimentoRequest);

            if (resultado)
            {
                _logger.Info($"Create [FIM]|resultado: {resultado}");
            }
            else
            {
                ViewBag.Alerta = "Erro ao cadastrar movimento.";

                ListarProduto();

                _logger.Warn("Create [FIM]|resultado: {0}", resultado);
            }

            return(RedirectToAction("Create"));
        }
Esempio n. 12
0
        public async Task <IHttpActionResult> Excluir([FromBody] JObject jsonData)
        {
            MovimentoView objeto = jsonData.SelectToken("Movimento").ToObject <MovimentoView>();

            return(Ok((new MovimentoNegocio().Excluir(objeto))));
        }
Esempio n. 13
0
 public void Excluir(MovimentoView movimentoView)
 {
     repository.Excluir(ObterModel(movimentoView));
 }