double valorEmAberto = 0; // VARIÁVEL QUE SERÁ EDITADA PELA REGRA DE NEGÓCIO EM PAGAMENTO.CONTROLLER // GET: Contrato public ActionResult Adicionar(int idCliente, string nomeTitular, double valorContrato, int quantidadeParcelas, DateTime primeiroVencimento, string garantia, int empresaIdEmpresa) { Contrato contrato = new Contrato(); ContratoDAO dao = new ContratoDAO(); Cliente cliente = new Cliente(); contrato.IdCliente = idCliente; contrato.NomeTitular = nomeTitular; contrato.ValorContrato = valorContrato; contrato.QuantidadeParcelas = quantidadeParcelas; contrato.PrimeiroVencimento = primeiroVencimento; contrato.Garantia = garantia; contrato.EmpresaIdEmpresa = empresaIdEmpresa; contrato.ValorEmAberto = valorEmAberto; dao.Adicionar(contrato); double auxiliarValorParcela = 0; // Usada para ALTERAR a entidade valorEmABerto na entidade CONTRATO depois //que o método do método de valor de parcelas ter calculado o montante total double valorParcela; for (var i = 0; i < quantidadeParcelas; i++) { Pagamento pagamento = new Pagamento(); valorParcela = pagamento.CalculoContrato(valorContrato, quantidadeParcelas); // INSERINDO NA TABELA PAGAMENTOS PagamentoDAO daoPagamento = new PagamentoDAO(); pagamento.ValorIntegralDaParcela = valorParcela; pagamento.Status = 0; pagamento.IdContrato = contrato.IdContrato; // ^ Metodo precisa vir depois de ADICIONAR CONTRATO, para que ele tenha uma ID pra ser registrada na table pagamentos pagamento.IdCliente = idCliente; // ^ Este dado não é pedido na entidade CONTRATO pagamento.DataVencimento = primeiroVencimento.AddMonths(i); daoPagamento.Adicionar(pagamento); auxiliarValorParcela = valorParcela * quantidadeParcelas; } contrato.ValorEmAberto = auxiliarValorParcela; dao.Alterar(contrato); return(RedirectToAction("Form")); }
// GET: Pagamento public ActionResult Adicionar(double valorIntegralDaParcela, DateTime dataVencimento, int contratoIdContrato, int clienteIdCliente) { Pagamento pagamento = new Pagamento(); PagamentoDAO dao = new PagamentoDAO(); pagamento.ValorIntegralDaParcela = valorIntegralDaParcela; pagamento.Status = 0; pagamento.DataVencimento = dataVencimento; pagamento.IdContrato = contratoIdContrato; pagamento.IdCliente = clienteIdCliente; dao.Adicionar(pagamento); return(View()); }
public ActionResult AlterarPagamento(int idpagamento, double valorIntegralDaParcela, int status, DateTime dataVencimento, double valorPago, int contratoIdContrato, int clienteIdCliente) { PagamentoDAO dao = new PagamentoDAO(); Pagamento pagamento = dao.Listar().FirstOrDefault(x => x.IdPagamento == idpagamento); ContratoDAO CtDao = new ContratoDAO(); var contrato = new Contrato(); pagamento.Status = 1; // STATUS DE RECEBIMENTO var dataAtual = DateTime.Now; var outraData = pagamento.DataVencimento; TimeSpan Atraso = dataAtual.Subtract(outraData); double diasDeAtraso = Atraso.TotalDays; var novoValorPagamento = pagamento.CalculaJuroDiario(valorIntegralDaParcela, diasDeAtraso); if (valorPago < valorIntegralDaParcela) { var proximoPagamento = dao.BuscarProximoPagamento(pagamento); if (proximoPagamento == null) { pagamento.ValorIntegralDaParcela = valorIntegralDaParcela; pagamento.Status = status; pagamento.DataVencimento = dataVencimento; pagamento.IdContrato = contratoIdContrato; pagamento.IdCliente = clienteIdCliente; dao.Adicionar(pagamento); } } pagamento.ValorIntegralDaParcela = valorIntegralDaParcela; pagamento.Status = status; pagamento.DataVencimento = dataVencimento; pagamento.IdContrato = contratoIdContrato; pagamento.IdCliente = clienteIdCliente; dao.Alterar(pagamento); return(View(pagamento)); }