public ActionResult <OperacaoDTO> GetOperacaoByNome(String nome)
        {
            long id = 0;

            List <Operacao> listaOperacoes = _context.Operacoes.ToList();

            foreach (Operacao oper in listaOperacoes)
            {
                if (oper.nome.nome == nome)
                {
                    id = oper.Id;
                }
            }

            Operacao op = Orepo.SelectById(id);

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

            long idTipoOp = op.tipoOpId;

            TipoOperacao t = TOrepo.SelectById(idTipoOp);

            OperacaoDTO dto = new OperacaoDTO {
                nomeTipoOp = t.nome.nome, nomeOperacao = op.nome.nome, duracao = op.duracao
            };

            return(dto);
        }
 public void Saque(OperacaoDTO operacaoDTO)
 {
     if (_operacaoRepository.VerificaSaldo(operacaoDTO) == 0)
     {
         _operacaoRepository.Saque(operacaoDTO);
         _operacaoRepository.AtualizaSaldo(operacaoDTO);
     }
 }
        public void AtualizaSaldo(OperacaoDTO operacaoDTO)
        {
            _conexaoBancoDados.ExecutarProcedure("AltSaldo");
            _conexaoBancoDados.AddParametro("@Num_TipoOperacao", operacaoDTO.Num_TipoOperacao);
            _conexaoBancoDados.AddParametro("@Num_Valor", operacaoDTO.Num_Valor);
            _conexaoBancoDados.AddParametro("@Num_idConta1", operacaoDTO.Num_idConta1);
            _conexaoBancoDados.AddParametro("@Num_idConta2", operacaoDTO.Num_idConta2);

            _conexaoBancoDados.ExecutarSemRetorno();
        }
        public void Saque(OperacaoDTO operacaoDTO)
        {
            _conexaoBancoDados.ExecutarProcedure("InsSaque");
            _conexaoBancoDados.AddParametro("@Num_idConta1", operacaoDTO.Num_idConta1);
            _conexaoBancoDados.AddParametro("@Num_Valor", operacaoDTO.Num_Valor);
            _conexaoBancoDados.AddParametro("@Num_TipoOperacao", operacaoDTO.Num_TipoOperacao);
            _conexaoBancoDados.AddParametro("@Num_Operacao", operacaoDTO.Num_Operacao);
            _conexaoBancoDados.AddParametro("@Date_DataOperacao", operacaoDTO.Date_DataOperacao);

            _conexaoBancoDados.ExecutarSemRetorno();
        }
 public IHttpActionResult Saque(OperacaoDTO operacaoDTO)
 {
     try
     {
         _operacaoService.Saque(operacaoDTO);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest("Erro ao sacar um valor: " + ex.Message));
     }
 }
 public IHttpActionResult Estorno(OperacaoDTO operacaoDTO)
 {
     try
     {
         _operacaoService.Estorno(operacaoDTO);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest("Erro ao transferir um valor: " + ex.Message));
     }
 }
 public IHttpActionResult Deposito(OperacaoDTO operacaoDTO)
 {
     try
     {
         _operacaoService.Deposito(operacaoDTO);
         List <string> ListErros = _notification.getErros();
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest("Erro ao depositar um valor: " + ex.Message));
     }
 }
        public void Transferencia(OperacaoDTO operacaoDTO)
        {
            if (_operacaoRepository.VerificaSaldo(operacaoDTO) != 0)
            {
                //desfaz os comandos
                return;
            }
            if (_operacaoRepository.Transferencia(operacaoDTO) != 0)
            {
                //desfaz os comandos
                return;
            }

            _operacaoRepository.AtualizaSaldo(operacaoDTO);
        }
        public int VerificaSaldo(OperacaoDTO operacaoDTO)
        {
            _conexaoBancoDados.ExecutarProcedure("VerificaSaldoNaConta");
            _conexaoBancoDados.AddParametro("@Num_idConta1", operacaoDTO.Num_idConta1);
            _conexaoBancoDados.AddParametro("@Num_Valor", operacaoDTO.Num_Valor);

            int retornoBanco = _conexaoBancoDados.ExecuteNoQueryWithReturn();

            if (retornoBanco == 1)
            {
                _notification.adicionaErro("Saldo Insuficiente");
            }

            return(retornoBanco);
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> PutOperacao(OperacaoDTO update_operacao)
        {
            var operacaoDTO = await repositorio.getOperacaoById(update_operacao.id);

            if (operacaoDTO == null)
            {
                return(NotFound("Operação não existe!"));
            }

            operacaoDTO.Value.descricaoOperacao  = new Models.ValueObjects.Descricao(update_operacao.descricaoOperacao);
            operacaoDTO.Value.duracaoOperacao    = new Models.ValueObjects.DuracaoOperacao(update_operacao.duracaoOperacao.Split(":")[0], update_operacao.duracaoOperacao.Split(":")[1], update_operacao.duracaoOperacao.Split(":")[2]);
            operacaoDTO.Value.ferramentaOperacao = new Models.ValueObjects.Ferramenta(update_operacao.id_ferramenta, update_operacao.duracaoFerramenta.Split(":")[0], update_operacao.duracaoFerramenta.Split(":")[1], update_operacao.duracaoFerramenta.Split(":")[2]);

            repositorio.updateOperacao(operacaoDTO.Value);
            return(NoContent());
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Método para incluir Passivo
        /// </summary>
        /// <param name="pPassivo"></param>
        public string InserirOperacao(OperacaoDTO pOperacao)
        {
            Dictionary <string, string> pParam = new Dictionary <string, string>();

            pParam.Add("IdUsuario", pOperacao.IdUsuario.ToString());
            pParam.Add("NomeOperacao", pOperacao.NomeOperacao.ToString());
            pParam.Add("ValorOperacao", pOperacao.ValorOperacao.ToString());
            pParam.Add("ValorParcela", pOperacao.ValorParcela.ToString());
            pParam.Add("QtdParcela", pOperacao.QtdParcela.ToString());
            pParam.Add("Descricao", pOperacao.Descricao = pOperacao.Descricao != null ? pOperacao.Descricao.ToString() : string.Empty);
            pParam.Add("DataCadastro", DateTime.Now.ToString("yyyy/M/d HH:mm:ss"));
            pParam.Add("TipoOperacao", Convert.ToString((int)pOperacao.TipoOperacao));
            pParam.Add("TipoCalculo", "2");

            return(Acesso.Executar(Processos.Executar.Inserir_Operacao, Util.ParametroSql(pParam)));
        }
Ejemplo n.º 12
0
        public void AlterarOperacao(OperacaoDTO pOperacao)
        {
            Dictionary <string, string> pParam = new Dictionary <string, string>();

            pParam.Add("IdUsuario", pOperacao.IdUsuario.ToString());
            pParam.Add("NomeOperacao", pOperacao.NomeOperacao.ToString());
            pParam.Add("ValorOperacao", pOperacao.ValorOperacao.ToString());
            pParam.Add("ValorParcela", pOperacao.ValorParcela.ToString());
            pParam.Add("QtdParcela", pOperacao.QtdParcela.ToString());
            pParam.Add("Descricao", pOperacao.Descricao.ToString());
            pParam.Add("DataAlteracao", pOperacao.DataAlteracao.ToString("yyyy/M/d HH:mm:ss"));
            pParam.Add("TipoOperacao", pOperacao.TipoOperacao.ToString());
            pParam.Add("TipoCalculo", pOperacao.TipoCalculo.ToString());

            Acesso.Executar(Processos.Executar.Alterar_Operacao, Util.ParametroSql(pParam));
        }
        public OperacaoDTO Sacar(ContaDTO conta, decimal valorSacar)
        {
            var caixaEletronico = _commonDbContext.Caixas.FirstOrDefault();

            var contaUsuario = _commonDbContext.Contas.Where(x => x.NumeroContaCli == conta.NumeroContaCli).FirstOrDefault();

            OperacaoDTO operacao = new OperacaoDTO();

            if (_caixaEletronicoDAO.ValidarSaque(valorSacar, contaUsuario, caixaEletronico))
            {
                contaUsuario.SaldoConta -= valorSacar;
                conta.SaldoConta         = contaUsuario.SaldoConta;

                _commonDbContext.Update(contaUsuario);
                _commonDbContext.Update(caixaEletronico);
                _commonDbContext.SaveChanges();

                operacao.Conta     = conta;
                operacao.Realizada = true;

                var notasParaSaque = _caixaEletronicoDAO.RetornarNotasNecessarias(valorSacar);

                caixaEletronico.NotasCem         -= notasParaSaque[0];
                caixaEletronico.NotasCinquenta   -= notasParaSaque[1];
                caixaEletronico.NotasVinte       -= notasParaSaque[2];
                caixaEletronico.NotasCem         -= notasParaSaque[3];
                caixaEletronico.Valor_Disponivel -= valorSacar;

                contaUsuario.SaldoConta -= valorSacar;
                conta.SaldoConta         = contaUsuario.SaldoConta;

                _commonDbContext.Update(contaUsuario);
                _commonDbContext.Update(caixaEletronico);
                _commonDbContext.SaveChanges();

                operacao.NotasUtilizadas = new int[4] {
                    notasParaSaque[0], notasParaSaque[1], notasParaSaque[2], notasParaSaque[3]
                };
                operacao.ValorSacado = valorSacar;
                operacao.Conta       = conta;
                operacao.Realizada   = true;

                return(operacao);
            }
            return(operacao);
        }
        public int Transferencia(OperacaoDTO operacaoDTO)
        {
            _conexaoBancoDados.ExecutarProcedure("InsTransferencia");
            _conexaoBancoDados.AddParametro("@Num_idConta1", operacaoDTO.Num_idConta1);
            _conexaoBancoDados.AddParametro("@Num_Valor", operacaoDTO.Num_Valor);
            _conexaoBancoDados.AddParametro("@Num_TipoOperacao", operacaoDTO.Num_TipoOperacao);
            _conexaoBancoDados.AddParametro("@Num_Operacao", operacaoDTO.Num_Operacao);
            _conexaoBancoDados.AddParametro("@Date_DataOperacao", operacaoDTO.Date_DataOperacao);
            _conexaoBancoDados.AddParametro("@Num_idConta2", operacaoDTO.Num_idConta2);

            int retornoBanco = _conexaoBancoDados.ExecuteNoQueryWithReturn();

            if (retornoBanco == 1)
            {
                _notification.adicionaErro("Conta do destino da transferência não encontrada");
            }

            return(retornoBanco);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Converte Viewmodel em Objeto
        /// </summary>
        /// <param name="pPassivo"></param>
        /// <returns></returns>
        public OperacaoDTO ConvertModeltoObj(Models.OperacaoModel pModelOperacao)
        {
            OperacaoDTO operacaoDTO = new OperacaoDTO();
            UsuarioBLL  usuarioBLL  = new UsuarioBLL();

            operacaoDTO.IdUsuario     = usuarioBLL.ConsultarUsuarioSessao();
            operacaoDTO.IdOperacao    = pModelOperacao.IdOperacao;
            operacaoDTO.NomeOperacao  = pModelOperacao.NomeOperacao;
            operacaoDTO.QtdParcela    = pModelOperacao.QtdParcela;
            operacaoDTO.ValorParcela  = (double)pModelOperacao.ValorParcela;
            operacaoDTO.Descricao     = pModelOperacao.Descricao;
            operacaoDTO.DataAlteracao = DateTime.Now;
            operacaoDTO.TipoOperacao  = pModelOperacao.TipoOperacao;

            //operacaoDTO.TipoCalculo = pModelOperacao.TipodeCalculo;
            operacaoDTO.TipoCalculo = TipodeCalculo.Parcela;

            return(operacaoDTO);
        }
        public void OperacaoDTOTeste()
        {
            TestesUteis testesUteis = new TestesUteis();

            var obj = new OperacaoDTO()
            {
                Conta           = testesUteis.Contas(),
                NotasUtilizadas = new int[4] {
                    1, 1, 1, 1
                },
                Realizada   = true,
                ValorSacado = 500
            };

            Assert.IsInstanceOfType(obj.Conta, typeof(ContaDTO));
            Assert.IsInstanceOfType(obj.NotasUtilizadas, typeof(int[]));
            Assert.AreEqual(true, obj.Realizada);
            Assert.AreEqual(500, obj.ValorSacado);
        }
Ejemplo n.º 17
0
        public List <OperacaoDTO> GetOperacoes()
        {
            IEnumerable <Operacao> lista = Orepo.SelectAll();

            List <OperacaoDTO> listaFinal = new List <OperacaoDTO> ();

            foreach (Operacao p in lista)
            {
                long         tipoOp = p.tipoOpId;
                TipoOperacao to     = TOrepo.SelectById(tipoOp);
                OperacaoDTO  dto    = new OperacaoDTO {
                };
                dto = new OperacaoDTO {
                    nomeTipoOp = to.nome.nome, nomeOperacao = p.nome.nome, duracao = p.duracao
                };
                listaFinal.Add(dto);
            }

            return(listaFinal);
        }
Ejemplo n.º 18
0
        public ActionResult <Operacao> PostOperacao(OperacaoDTO dto)
        {
            IEnumerable <Operacao> lista = Orepo.SelectAll();

            long id = 0;

            List <TipoOperacao> listaTipoOperacoes = _context.tipoOperacoes.ToList();

            foreach (TipoOperacao oper in listaTipoOperacoes)
            {
                if (oper.nome.nome == dto.nomeTipoOp)
                {
                    id = oper.Id;
                }
            }

            TipoOperacao to = TOrepo.SelectById(id);

            if (to == null)
            {
                return(BadRequest());
            }

            Operacao op = new Operacao {
                nome = new NomeOperacao {
                    nome = dto.nomeOperacao
                }, tipoOpId = id, duracao = dto.duracao
            };

            //Verifica se existe alguma operacao igual a que se deseja inserir
            foreach (Operacao op1 in lista)
            {
                if (op.nome.nome == op1.nome.nome)
                {
                    return(BadRequest());
                }
            }

            return(Ok(Orepo.Insert(op)));
        }
        public void Sacar()
        {
            ContaDTO    conta      = new ContaDTO();
            OperacaoDTO operacao   = new OperacaoDTO();
            decimal     valorSacar = 50;

            mockService.Setup(x => x.Sacar(It.IsAny <ContaDTO>(), It.IsAny <decimal>()))
            .Returns(new Retorno()
            {
                Codigo   = 200,
                Data     = JsonConvert.SerializeObject(operacao),
                Mensagem = "SAQUE REALIZADO COM SUCESSO."
            });

            IActionResult result   = controller.Sacar(conta, valorSacar);
            var           okResult = result as OkObjectResult;

            Retorno contentResult = (Retorno)okResult.Value;

            Assert.AreEqual(contentResult.Codigo, 200);
            Assert.AreEqual(contentResult.Mensagem, "SAQUE REALIZADO COM SUCESSO.");
            Assert.IsNotNull(contentResult.Data);
        }
        public void OperacoesBancariasController_SacarTest()
        {
            ContaDTO    conta      = new ContaDTO();
            OperacaoDTO operacao   = new OperacaoDTO();
            decimal     valorSacar = 1000;

            mockService.Setup(x => x.Sacar(It.IsAny <ContaDTO>(), It.IsAny <decimal>()))
            .Returns(new Retorno()
            {
                Codigo   = 200,
                Data     = JsonConvert.SerializeObject(operacao),
                Mensagem = "Saque realizado com sucesso."
            });

            IActionResult result   = controller.Sacar(conta, valorSacar);
            var           okResult = result as OkObjectResult;

            Retorno contentResult = (Retorno)okResult.Value;

            Assert.AreEqual(contentResult.Codigo, 200);
            Assert.AreEqual(contentResult.Mensagem, "Saque realizado com sucesso.");
            Assert.IsNotNull(contentResult.Data);
        }
Ejemplo n.º 21
0
        public ActionResult GravarParcelas(OperacaoModel operacao)
        {
            if (!this.ModelState.IsValid)
            {
                return(RedirectToAction("~/Principal/_OperacaoModal", operacao));
            }

            try
            {
                if (operacao.IdOperacao > 0)
                {
                    operacaoBLL.DeletarOperacao(operacao.IdOperacao);
                }

                string identity_Inserido;
                if (ListaParcelas.Count > 0)
                {
                    OperacaoDTO objOperacao = operacaoBLL.ConvertModeltoObj(operacao);

                    objOperacao.ValorOperacao = ListaParcelas.Sum(x => x.Valor_Parcela);
                    identity_Inserido         = operacaoBLL.InserirOperacao(objOperacao);

                    if (int.TryParse(identity_Inserido, out int identityInserido))
                    {
                        operacaoBLL.InserirParcela(ListaParcelas, identityInserido);
                    }
                }

                var result = new { Success = "True", Message = "Operação registrada." };
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception erro)
            {
                var result = new { Success = "False", Message = erro.Message };
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
        public OperacaoDTO Sacar(ContaDTO conta, decimal valorSacar)
        {
            OperacaoDTO operacao = new OperacaoDTO();

            var caixaEletronico = _commonDbContext.Caixas.FirstOrDefault();

            var contaUsuario = _commonDbContext.Contas.Where(x => x.Banco == conta.BancoContaCli && x.Agencia == conta.AgenciaContaCli && x.NumeroContaCli == conta.NumeroContaCli && x.CpfCliente == conta.CpfCli).FirstOrDefault();

            if (_caixaEletronicoDAO.ValidarSaque(valorSacar, contaUsuario, caixaEletronico))
            {
                var notasParaSaque = _caixaEletronicoDAO.RetornarNotasNecessarias(valorSacar);

                caixaEletronico.NotasCem         -= notasParaSaque[0];
                caixaEletronico.NotasCinquenta   -= notasParaSaque[1];
                caixaEletronico.NotasVinte       -= notasParaSaque[2];
                caixaEletronico.NotasDez         -= notasParaSaque[3];
                caixaEletronico.Valor_Disponivel -= valorSacar;

                contaUsuario.SaldoConta -= valorSacar;
                conta.SaldoConta         = contaUsuario.SaldoConta.ToString().Length < 12 ? Convert.ToDecimal(contaUsuario.SaldoConta.ToString().PadRight(12, '0')) : contaUsuario.SaldoConta;

                _commonDbContext.Update(contaUsuario);
                _commonDbContext.Update(caixaEletronico);
                _commonDbContext.SaveChanges();

                operacao.NotasUtilizadas = new int[4] {
                    notasParaSaque[0], notasParaSaque[1], notasParaSaque[2], notasParaSaque[3]
                };
                operacao.ValorSacado = valorSacar;
                operacao.Conta       = conta;
                operacao.Realizada   = true;

                return(operacao);
            }
            return(operacao);
        }
Ejemplo n.º 23
0
 /// <summary>
 /// Método para Inserir um Passivo no Banco de Dados
 /// </summary>
 /// <param name="DTO"></param>
 public string InserirOperacao(OperacaoDTO pOperacao)
 {
     return(OperacaoDAL.InserirOperacao(pOperacao));
 }
Ejemplo n.º 24
0
        /// <summary>
        /// Método para Listar todos os passivos do cliente
        /// </summary>
        /// <param name="pId_Usuario"></param>
        /// <returns></returns>
        public List <OperacaoDTO> ListarOperacao(int pIdUsuario, TipoOperacao pTipoOperacao)
        {
            Dictionary <string, string> pParam = new Dictionary <string, string>();

            pParam.Add("IdUsuario", pIdUsuario.ToString());
            pParam.Add("TipoOperacao", Convert.ToString((int)pTipoOperacao));

            var tabela = Acesso.Consultar(Processos.Executar.Consultar_Listar_Operacao, Util.ParametroSql(pParam));

            for (int i = 0; i < tabela.Rows.Count; i++)
            {
                OperacaoDTO operacao = new OperacaoDTO();

                if (tabela.Rows[i]["IdUsuario"] != DBNull.Value)
                {
                    operacao.IdUsuario = Convert.ToInt32(tabela.Rows[i]["IdUsuario"]);
                }

                if (tabela.Rows[i]["IdOperacao"] != DBNull.Value)
                {
                    operacao.IdOperacao = Convert.ToInt32(tabela.Rows[i]["IdOperacao"]);
                }

                if (tabela.Rows[i]["NomeOperacao"] != DBNull.Value)
                {
                    operacao.NomeOperacao = Convert.ToString(tabela.Rows[i]["NomeOperacao"]);
                }

                if (tabela.Rows[i]["QtdParcela"] != DBNull.Value)
                {
                    operacao.QtdParcela = Convert.ToInt32(tabela.Rows[i]["QtdParcela"]);
                }

                if (tabela.Rows[i]["ValorOperacao"] != DBNull.Value)
                {
                    operacao.ValorOperacao = Convert.ToDouble(tabela.Rows[i]["ValorOperacao"]);
                }

                if (tabela.Rows[i]["ValorParcela"] != DBNull.Value)
                {
                    operacao.ValorParcela = Convert.ToDouble(tabela.Rows[i]["ValorParcela"]);
                }

                if (tabela.Rows[i]["Descricao"] != DBNull.Value)
                {
                    operacao.Descricao = Convert.ToString(tabela.Rows[i]["Descricao"]);
                }

                if (tabela.Rows[i]["DataCadastro"] != DBNull.Value)
                {
                    operacao.DataCadastro = Convert.ToDateTime(tabela.Rows[i]["DataCadastro"]);
                }

                if (tabela.Rows[i]["DataAlteracao"] != DBNull.Value)
                {
                    operacao.DataAlteracao = Convert.ToDateTime(tabela.Rows[i]["DataAlteracao"]);
                }

                if (tabela.Rows[i]["TipoOperacao"] != DBNull.Value)
                {
                    operacao.TipoOperacao = (TipoOperacao)Convert.ToInt32(tabela.Rows[i]["TipoOperacao"]);
                }

                if (tabela.Rows[i]["TipoCalculo"] != DBNull.Value)
                {
                    operacao.TipoCalculo = (TipodeCalculo)Convert.ToInt32(tabela.Rows[i]["TipoCalculo"]);
                }

                if (operacao.IdOperacao > 0)
                {
                    operacao.Parcelas = new OperacaoBLL().ConsultarParcelas(operacao.IdOperacao);
                }

                listaOperacao.Add(operacao);
            }
            return(listaOperacao);
        }
Ejemplo n.º 25
0
 /// <summary>
 /// Método para Alterar um Passivo
 /// </summary>
 /// <param name="pPassivo"></param>
 public void AlterarPassivo(OperacaoDTO pOperacao)
 {
     OperacaoDAL.AlterarOperacao(pOperacao);
 }
Ejemplo n.º 26
0
 public async Task <ActionResult <Operacao> > PostOperacao(OperacaoDTO update_operacao)
 {
     repositorio.addOperacao(new Operacao(update_operacao.id, update_operacao.descricaoOperacao, update_operacao.duracaoOperacao.Split(":")[0], update_operacao.duracaoOperacao.Split(":")[1], update_operacao.duracaoOperacao.Split(":")[2], update_operacao.id_ferramenta, update_operacao.duracaoFerramenta.Split(":")[0], update_operacao.duracaoFerramenta.Split(":")[1], update_operacao.duracaoFerramenta.Split(":")[2]));
     return(CreatedAtAction(nameof(GetOperacao), new { id = update_operacao.id }, update_operacao));
 }
 public void Deposito(OperacaoDTO operacaoDTO)
 {
     _operacaoRepository.Deposito(operacaoDTO);
     _operacaoRepository.AtualizaSaldo(operacaoDTO);
 }
 public void Estorno(OperacaoDTO operacaoDTO)
 {
     //_operacaoRepository.Estorno(operacaoDTO);
 }
 public void Estorno(OperacaoDTO operacaoDTO)
 {
     throw new NotImplementedException();
 }