public ContaPagarParcela Get(int id) { var command = CreateCommand("SELECT * FROM public.ContaPagarParcela WHERE idContaPagarParcela = @id"); command.Parameters.AddWithValue("@id", id); ContaPagarParcela conta = null; using (var reader = command.ExecuteReader()) { reader.Read(); if (reader.HasRows) { conta = new ContaPagarParcela { Id = Convert.ToInt32(reader["idContaPagarParcela"]), dataVencimento = Convert.ToDateTime(reader["dataVencimento"]), valorParcela = Convert.ToDecimal(reader["valorParcela"]), ajuste = Convert.ToDecimal(reader["ajuste"]), numParcela = Convert.ToInt32(reader["numParcela"]), idContaPagar = Convert.ToInt32(reader["fk_IdContaPagar"]) }; } else { return(null); } } conta.pagamentos = (List <ContaPagarParcelaPagamento>) new ContaPagarParcelaPagamentoRepositorio(this._context, this._transaction).GetByContaPagarParcela(conta.Id); return(conta); }
public void Create(ContaPagarParcela contPgParc) { var query = "INSERT INTO public.ContaPagarParcela(dataVencimento, valorParcela, ajuste, numParcela, fk_IdContaPagar) VALUES (@dataVencimento, @valorParcela, @ajuste, @numParcela, @fk_IdContaPagar)"; var command = CreateCommand(query); command.Parameters.AddWithValue("@dataVencimento", contPgParc.dataVencimento); command.Parameters.AddWithValue("@valorParcela", contPgParc.valorParcela); command.Parameters.AddWithValue("@ajuste", contPgParc.ajuste); command.Parameters.AddWithValue("@numParcela", contPgParc.numParcela); command.Parameters.AddWithValue("@fk_IdContaPagar", contPgParc.idContaPagar); command.ExecuteNonQuery(); query = "select currval('contapagarparcela_idcontapagarparcela_seq') as newId"; command = CreateCommand(query); using (var reader = command.ExecuteReader()) { reader.Read(); if (reader.HasRows) { contPgParc.Id = Convert.ToInt32(reader["newId"]); } } }
public void Update(ContaPagarParcela contPgParc) { using (var context = _unitOfWork.Create()) { context.Repositorios.ContaPagarParcelaRepositorio.Update(contPgParc); context.SaveChanges(); } }
public IActionResult CadastrarContaParcela([FromBody] ContaPagarParcela contParc) { if (contParc == null) { return(BadRequest()); } _contPgParcService.Create(contParc); return(CreatedAtRoute("GetContaParcela", new { id = contParc.Id }, contParc)); }
public void Update(ContaPagarParcela contPgParc) { var query = "UPDATE public.ContaPagarParcela SET dataVencimento = @dataVencimento, valorParcela = @valorParcela, " + "numParcela = @numParcela, ajuste = @ajuste, fk_IdContaPagar = @fk_IdContaPagar WHERE idContaPagarParcela = @id"; var command = CreateCommand(query); command.Parameters.AddWithValue("@dataVencimento", contPgParc.dataVencimento); command.Parameters.AddWithValue("@valorParcela", contPgParc.valorParcela); command.Parameters.AddWithValue("@numParcela", contPgParc.numParcela); command.Parameters.AddWithValue("@ajuste", contPgParc.ajuste); command.Parameters.AddWithValue("@fk_IdContaPagar", contPgParc.idContaPagar); command.Parameters.AddWithValue("@id", contPgParc.Id); command.ExecuteNonQuery(); }
public IActionResult EditarContaParcela(int id, [FromBody] ContaPagarParcela contParc) { _contPgParcService.Update(contParc); return(new NoContentResult()); }
public void GerarParcelas(ContaPagar contaPagar) { if (contaPagar.valorTotal == 0 && contaPagar.valorMensal == 0) { throw new AppError("É necessário informar o Valor Total ou Mensal para a Conta"); } else if (contaPagar.valorTotal > 0 && contaPagar.valorMensal > 0) { throw new AppError("Não é possível informar o Valor Total e Mensal para a Conta"); } else if (contaPagar.mesInicial <= 0 || contaPagar.mesInicial > 12) { throw new AppError("O Mês Inicial da Conta deve ser informado"); } else if (contaPagar.numParcelas <= 0) { throw new AppError("O número de parcelas da Conta deve ser informado"); } List <ContaPagarParcela> parcelas = new List <ContaPagarParcela>(); var ano = (contaPagar.mesInicial < DateTime.Now.Month && (DateTime.Now.Month == 12 && (contaPagar.mesInicial == 1 || contaPagar.mesInicial == 2))) ? DateTime.Now.Year + 1 : DateTime.Now.Year; var diasParc = contaPagar.diasPagamento.Split(','); if (contaPagar.valorMensal > 0 && !string.IsNullOrEmpty(contaPagar.diasPagamento)) { if (diasParc.Length != contaPagar.numParcelas) { throw new AppError("Dias de Pagamento não conferem com o número de parcelas"); } } var parcelasConta = new ContaPagarParcelaRepositorio(this._context, this._transaction).GetByContaPagar(contaPagar.Id).ToList(); if (parcelasConta.Count > 0) { foreach (var parc in parcelasConta) { new ContaPagarParcelaRepositorio(this._context, this._transaction).Remove(parc.Id); } } for (int i = 0; i < contaPagar.numParcelas; i++) { ContaPagarParcela contaPagarParcela = new ContaPagarParcela(); decimal valorParc = 0; DateTime data = new DateTime(); if (contaPagar.valorTotal > 0) { data = Convert.ToDateTime(contaPagar.diaInicial + "/" + contaPagar.mesInicial + "/" + ano.ToString()).AddMonths(i); valorParc = contaPagar.valorTotal / contaPagar.numParcelas; valorParc = Math.Round(valorParc, 2); } else if (contaPagar.valorMensal > 0 && !string.IsNullOrEmpty(contaPagar.diasPagamento)) { valorParc = contaPagar.valorMensal / contaPagar.numParcelas; valorParc = Math.Round(valorParc, 2); data = Convert.ToDateTime(diasParc[i].ToString().Trim() + "/" + contaPagar.mesInicial + "/" + ano.ToString()); } else if (contaPagar.valorMensal > 0) { valorParc = contaPagar.valorMensal; data = Convert.ToDateTime(contaPagar.diaInicial + "/" + contaPagar.mesInicial + "/" + ano.ToString()).AddMonths(i); } contaPagarParcela.idContaPagar = contaPagar.Id; contaPagarParcela.numParcela = i + 1; contaPagarParcela.valorParcela = valorParc; contaPagarParcela.dataVencimento = data; parcelas.Add(contaPagarParcela); } var soma = parcelas.Sum(p => p.valorParcela); decimal dif = 0; if (contaPagar.valorTotal > 0) { dif = contaPagar.valorTotal - soma; } else if (contaPagar.valorMensal > 0) { dif = contaPagar.valorMensal - soma; } if (dif > 0) { parcelas.Last().valorParcela = parcelas.Last().valorParcela + dif; } foreach (var parc in parcelas) { new ContaPagarParcelaRepositorio(this._context, this._transaction).Create(parc); } }