Beispiel #1
0
        public Divida getDivida(int iddevedor)
        {
            SqlCommand    cmd     = new SqlCommand();
            Conexao       conexao = new Conexao();
            SqlDataReader dr;

            cmd.CommandText = "SELECT * FROM DIVIDA WHERE DIVIDA.IDDEVEDOR = @ID";
            cmd.Parameters.AddWithValue("@ID", iddevedor);
            Divida retorno = new Divida();

            try
            {
                cmd.Connection = conexao.conectar();
                dr             = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        retorno.idDivida       = Convert.ToInt32(dr["IDDIVIDA"]);
                        retorno.valor          = Convert.ToDouble(dr["VALOR"]);
                        retorno.dataVencimento = Convert.ToDateTime(dr["DATAVENCIMENTO"]);
                        retorno.idEmpresa      = Convert.ToInt32(dr["IDEMPRESA"]);
                        retorno.idDevedor      = Convert.ToInt32(dr["IDDEVEDOR"]);
                        retorno.status         = Convert.ToString(dr["STATUS"]);
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(retorno);
        }
Beispiel #2
0
        public void enviarEmail(string para, Divida divida)
        {
            this.client                       = new SmtpClient();
            this.client.Host                  = "smtp.gmail.com";
            this.client.Port                  = PORTA;
            this.client.EnableSsl             = true;
            this.client.UseDefaultCredentials = false;
            this.client.Credentials           = new NetworkCredential("*****@*****.**", "Toledo123");

            string anexo = verificaArquivo(divida);

            MailMessage mail = new MailMessage();

            mail.From = new MailAddress("*****@*****.**");
            mail.To.Add(new MailAddress(para));
            mail.Body    = "Mensagem automatica, não é necessario responder. Segue em anexo seu(s) boleto(s).";
            mail.Subject = "Negociacao de credito - EasyCall";
            mail.Attachments.Add(new Attachment(anexo));

            try
            {
                client.Send(mail);
                client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
                //MessageBox.Show("email enviado com sucesso!");
                mail.Dispose();
                client.Dispose();
            }
            catch (Exception ex)
            {
                MessageBox.Show("erro: " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        // GET: api/Divida/5
        public Divida Get(int id)
        {
            Divida divida     = new Divida();
            var    connection = DBConnection.Instance();

            try
            {
                if (connection.IsConnect())
                {
                    var command = new MySqlCommand("SELECT ID, CLIENTE_ID, MOTIVO, VALOR, DATA_DIVIDA FROM DIVIDAS WHERE EXCLUIDO_EM IS NULL AND ID = @val1", connection.Connection);
                    command.Parameters.AddWithValue("@val1", id);
                    var reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        divida = new Divida
                        {
                            Id         = int.Parse(reader.GetString(0)),
                            ClienteId  = int.Parse(reader.GetString(1)),
                            Motivo     = reader.GetString(2),
                            Valor      = decimal.Parse(reader.GetString(3)),
                            DataDivida = DateTime.Parse(reader.GetString(4))
                        };
                        break;
                    }
                }
            }
            finally
            {
                connection.Close();
            }
            return(divida);
        }
        // GET: api/Divida
        public List <Divida> Get()
        {
            List <Divida> dividas = new List <Divida>();
            Divida        divida;
            var           connection = DBConnection.Instance();

            try
            {
                if (connection.IsConnect())
                {
                    var command = new MySqlCommand("SELECT ID, CLIENTE_ID, MOTIVO, VALOR, DATA_DIVIDA FROM DIVIDAS WHERE EXCLUIDO_EM IS NULL", connection.Connection);
                    var reader  = command.ExecuteReader();
                    while (reader.Read())
                    {
                        divida = new Divida
                        {
                            Id         = int.Parse(reader.GetString(0)),
                            ClienteId  = int.Parse(reader.GetString(1)),
                            Motivo     = reader.GetString(2),
                            Valor      = decimal.Parse(reader.GetString(3)),
                            DataDivida = DateTime.Parse(reader.GetString(4))
                        };

                        dividas.Add(divida);
                    }
                }
            }
            finally
            {
                connection.Close();
            }
            return(dividas);
        }
Beispiel #5
0
        public List <Divida> listDivida()
        {
            SqlCommand    cmd     = new SqlCommand();
            Conexao       conexao = new Conexao();
            SqlDataReader dr;

            cmd.CommandText = "SELECT * FROM DIVIDA";
            var retorno = new List <Divida>();

            try
            {
                cmd.Connection = conexao.conectar();
                dr             = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        var item = new Divida();
                        item.idDivida       = Convert.ToInt32(dr["IDDIVIDA"]);
                        item.valor          = Convert.ToDouble(dr["VALOR"]);
                        item.dataVencimento = Convert.ToDateTime(dr["DATAVENCIMENTO"]);
                        item.idEmpresa      = Convert.ToInt32(dr["IDEMPRESA"]);
                        item.idDevedor      = Convert.ToInt32(dr["IDDEVEDOR"]);
                        item.status         = Convert.ToString(dr["STATUS"]);
                        //item.ul = Convert.ToDateTime(dr["UL"]);
                        retorno.Add(item);
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            return(retorno);
        }
Beispiel #6
0
        public Divida Calcular(Divida d)
        {
            double amortizacaoConstante = d.Montante / (d.Parcelas.Count - 1);
            double saldoDevedor         = d.Montante;

            d.TotalAmortizacao = 0;
            d.TotalJuros       = 0;
            d.TotalPrestacao   = 0;

            foreach (Parcela p in d.Parcelas)
            {
                p.SaldoDevedor = saldoDevedor;
                saldoDevedor  -= amortizacaoConstante;
                if (p.Periodo == 0)
                {
                    continue;
                }
                p.Amortizacao = amortizacaoConstante;
                p.Juros       = Math.Round((((d.Parcelas.Count - 1) - p.Periodo + 1) * d.TaxaDeJuros * amortizacaoConstante), 2);
                p.Prestacao   = amortizacaoConstante + p.Juros;

                d.TotalAmortizacao += p.Amortizacao;
                d.TotalJuros       += p.Juros;
                d.TotalPrestacao   += p.Prestacao;
            }

            return(d);
        }
        public async Task <IRetorno> IncluirDivida(DividaDTO dto)
        {
            try
            {
                dto.Validate();

                if (dto.Invalid)
                {
                    return(new RetornoDTO(false, "Erro na requisição, verificar parametros de entrar", dto.Notifications));
                }

                var divida = new Divida(dto.ValorOriginal, dto.DataVencimento, dto.DocumentoDevedor, dto.UsuarioId);

                var dividaCriada = await _repository.CriarAsync(divida);

                if (dividaCriada)
                {
                    return(new RetornoDTO(true, "Divida incluida com sucesso", divida));
                }

                return(new RetornoDTO(false, "Erro ao tentar salvar os dados na base", null));
            }catch (Exception ex)
            {
                throw ex;
            }
        }
    public Divida BuscarDivida(int Cod_divida)
    {
        try
        {
            AbrirConexao();
            cmd = new SqlCommand("Select * from Divida where Cod_divida = @v1", con);
            cmd.Parameters.AddWithValue("@v1", Cod_divida);

            Dr = cmd.ExecuteReader();
            Divida d = new Divida();
            if (Dr.Read())
            {
                d.Quantidade = Convert.ToInt32(Dr["quantidade"]);
                d.Produto    = Convert.ToString(Dr["Produto"]);
                d.Data       = Convert.ToString(Dr["Data"]);
                d.Comprador  = Convert.ToString(Dr["Comprador"]);
                d.preco      = Convert.ToDecimal(Dr["Preco"]);
            }
            return(d);
        }
        catch (Exception ex)
        {
            throw new Exception("erro ao pesquisar" + ex.Message);
        }
        finally
        {
            FecharConexao();
        }
    }
    public List <Divida> ListarTodasDividas()
    {
        try
        {
            AbrirConexao();
            List <Divida> lista = new List <Divida>();
            cmd = new SqlCommand("select * from Divida  ", con);


            Dr = cmd.ExecuteReader();

            while (Dr.Read())
            {
                Divida d = new Divida();

                d.Cod_divida = Convert.ToInt32(Dr["Cod_divida"]);
                d.Quantidade = Convert.ToInt32(Dr["Quantidade"]);
                d.Produto    = Convert.ToString(Dr["Produto"]);
                d.Data       = Convert.ToString(Dr["Data"]);
                d.Comprador  = Convert.ToString(Dr["Comprador"]);
                d.preco      = Convert.ToDecimal(Dr["Preco"]);
                d.Cod_deleta = Convert.ToInt32(Dr["Cod_deleta"]);
                lista.Add(d);
            }
            return(lista);
        }
        catch (Exception ex)
        {
            throw new Exception("Erro ao gravar cliente: " + ex.Message);
        }
        finally
        {
            FecharConexao();
        }
    }
Beispiel #10
0
        public async Task <bool> ExcluirAsync(Divida entity)
        {
            var count = listaDividas.Count;

            listaDividas.Remove(entity);
            return(await Task.FromResult(listaDividas.Count < count));
        }
        public int Insert(Divida divida)
        {
            var connectionString = this.GetConnectionString();
            int id = 0;

            using (var db = new MySqlConnection(connectionString))
            {
                try
                {
                    db.Open();
                    var trans = db.BeginTransaction();
                    var query = @"INSERT INTO Divida(NumeroTitulo, NomeDevedor, CPFDevedor, PorcentagemMulta, PorcentagemJuros)
                        VALUES(@NumeroTitulo, @NomeDevedor, @CPFDevedor, @PorcentagemMulta, @PorcentagemJuros);
                        SELECT LAST_INSERT_ID()";
                    id = db.QuerySingle <int>(query, divida, transaction: trans);

                    divida.Parcelas.ForEach(x => x.DividaId = id);
                    query = "INSERT INTO Parcela(Numero, DataVencimento, Valor, DividaId) VALUES (@Numero, @DataVencimento, @Valor, @DividaId)";
                    db.Execute(query, divida.Parcelas, transaction: trans);
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    ExceptionDispatchInfo.Capture(ex).Throw();
                }
                finally
                {
                    db.Close();
                }
                return(id);
            }
        }
        public Divida Calcular(Divida d)
        {
            double saldoDevedor = d.Montante;

            foreach (Parcela p in d.Parcelas)
            {
                if (p.Periodo != (d.Parcelas.Count - 1))
                {
                    p.SaldoDevedor = saldoDevedor;
                }
                if (p.Periodo == 0)
                {
                    continue;
                }
                p.Juros = Math.Round((saldoDevedor * d.TaxaDeJuros), 2);
                if (p.Periodo == d.Parcelas.Count - 1)
                {
                    p.Amortizacao = saldoDevedor;
                    p.Prestacao   = p.Amortizacao + p.Juros;
                }
                else
                {
                    p.Prestacao = p.Juros;
                }
                d.TotalAmortizacao += p.Amortizacao;
                d.TotalJuros       += p.Juros;
                d.TotalPrestacao   += p.Prestacao;
            }
            return(d);
        }
Beispiel #13
0
        public async Task <bool> AlterarAsync(Divida entity)
        {
            var index = listaDividas.FindIndex(x => x.Id == entity.Id);

            listaDividas[index] = entity;
            return(true);
        }
        private List <Parcela> CalcularParcelas(Parametrizacao parametrizacao, Divida divida)
        {
            try
            {
                var listaParcela  = new List <Parcela>();
                var totalAPagar   = CalCularValorTotalAPagar(divida, parametrizacao);
                var valorParcela  = totalAPagar / parametrizacao.MaximoParcelas;
                var diaVencimento = DateTime.Now.AddDays(1).Day;
                var anoVencimento = DateTime.Now.Year;
                var mesVencimeto  = DateTime.Now.Month;

                for (int i = 0; i < parametrizacao.MaximoParcelas; i++)
                {
                    var numeroParcela = i + 1;

                    var parcela = new Parcela(numeroParcela, valorParcela, new DateTime(anoVencimento, mesVencimeto + (i + 1), diaVencimento));
                    listaParcela.Add(parcela);
                }

                return(listaParcela);
            } catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <IHttpActionResult> PutDivida(int id, Divida Divida)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != Divida.Id)
            {
                return(BadRequest());
            }

            db.Entry(Divida).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DividaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #16
0
 public FormCadastroDeDivida(Divida divida)
 {
     InitializeComponent();
     Codigo               = divida.Codigo;
     txtNome.Text         = divida.Nome;
     txtValor.Text        = divida.ValorDaDivida.ToString();
     txtData.SelectedDate = divida.DataDeVencimento;
 }
Beispiel #17
0
        public async Task <bool> CriarAsync(Divida entity)
        {
            var count = listaDividas.Count;

            entity.Usuario = _usuario;
            listaDividas.Add(entity);
            return(await Task.FromResult(listaDividas.Count > count));
        }
Beispiel #18
0
        public ActionResult DeleteConfirmedDivida(int id)
        {
            Divida divida = db.Dividas.Find(id);

            db.Dividas.Remove(divida);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public void AmortizacaoDeveSerSubtracaoPrestacaoPeloJuros()
        {
            Divida resultado = amortizacao.Calcular(d);

            foreach (Parcela p in resultado.Parcelas)
            {
                Assert.AreEqual(p.Amortizacao, Math.Round(p.Prestacao - p.Juros), 2);
            }
        }
        public void DeveAtribuirNumeroCorretoDeParcelas()
        {
            Divida d = new Divida(0, 0, 10);

            for (int i = 0; i < d.Parcelas.Count; i++)
            {
                Assert.AreEqual(d.Parcelas[i].Periodo, i);
            }
            Assert.AreEqual(d.Parcelas.Count, 11);
        }
        public void JurosDeveSerSaldoDevedorDoMesAnteriorMultiplicadoPelaTaxaDeJuros()
        {
            Divida resultado = amortizacao.Calcular(d);
            double esperado;

            for (int i = 1; i < resultado.Parcelas.Count; i++)
            {
                esperado = Math.Round((resultado.Parcelas[i - 1].SaldoDevedor * d.TaxaDeJuros), 2);
                Assert.AreEqual(resultado.Parcelas[i].Juros, esperado);
            }
        }
        public void SaldoDevedorDeveSerIgualMesAnteriorMenosAmortizacaoAtual()
        {
            Divida resultado = amortizacao.Calcular(d);
            double esperado;

            for (int i = 1; i < resultado.Parcelas.Count; i++)
            {
                esperado = Math.Round((resultado.Parcelas[i - 1].SaldoDevedor - resultado.Parcelas[i].Amortizacao), 2);
                Assert.AreEqual(resultado.Parcelas[i].SaldoDevedor, esperado);
            }
        }
 public async Task <Divida> Put([FromBody] Divida divida)
 {
     try
     {
         return(await _repositorioFinanceiro.AtualizarDivida(divida));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
Beispiel #24
0
 public ActionResult Edit([Bind(Include = "DividaId,ClienteId,ValorDaDivida")] Divida divida)
 {
     if (ModelState.IsValid)
     {
         db.Entry(divida).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ClienteId = new SelectList(db.Clientes, "ClienteId", "Nome", divida.ClienteId);
     return(View(divida));
 }
        public void PrestacaoDeveSerASomaDaAmortizacaoComJuros()
        {
            Divida resultado = amortizacao.Calcular(d);

            foreach (Parcela p in resultado.Parcelas)
            {
                if (p.Periodo != 0)
                {
                    Assert.AreEqual(p.Prestacao, p.Amortizacao + p.Juros);
                }
            }
        }
        public void AmortizacaoDeveSerConstante()
        {
            Divida resultado = amortizacao.Calcular(d);

            foreach (Parcela p in resultado.Parcelas)
            {
                if (p.Periodo != 0)
                {
                    Assert.AreEqual(p.Amortizacao, 10000);
                }
            }
        }
Beispiel #27
0
        public void JurosDevemSerConstantes()
        {
            Divida resultado = amortizacao.Calcular(d);

            foreach (Parcela p in resultado.Parcelas)
            {
                if (p.Periodo != 0)
                {
                    Assert.AreEqual(p.Juros, 1500);
                }
            }
        }
Beispiel #28
0
        public ActionResult CreateDivida([Bind(Include = "DividaId,ClienteId,ValorDaDivida")] Divida divida)
        {
            if (ModelState.IsValid)
            {
                db.Dividas.Add(divida);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ClienteId = new SelectList(db.Clientes, "ClienteId", "Nome", divida.ClienteId);
            return(View(divida));
        }
Beispiel #29
0
 public async Task <bool> DeletarDivida(int idDivida)
 {
     try
     {
         Divida divida = _context.Dividas.Find(idDivida);
         _context.Dividas.Remove(divida);
         await _context.SaveChangesAsync();
     }
     catch
     {
         return(false);
     }
     return(true);
 }
Beispiel #30
0
        // GET: Administrador/Divida/DeleteDivida/5
        public ActionResult DeleteDivida(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Divida divida = db.Dividas.Find(id);

            if (divida == null)
            {
                return(HttpNotFound());
            }
            return(View(divida));
        }