Esempio n. 1
0
        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"));
        }