protected void btnDeclarar_Click(object sender, EventArgs e) { ContaCorrente conta = Session["ContaCorrente"] as ContaCorrente; Parcela parcela = Session["parcela"] as Parcela; Emprestimo emprestimo = parcela.EmprestimoProp; emprestimo.PagarParcela(parcela); lblMsg.Visible = true; lblMsg.Text = "OK parcela paga"; Session["parcela"] = null; }
//Quando o usuario clica em pagar em uma parcela de emprestimo que e do tipo de pagamento por debito em conta corrente //Será efetuado o pagamento da parcela e atualizado a gridview respectiva protected void gdvParcelasDebitoEmConta_RowCommand(object sender, GridViewCommandEventArgs e) { ContaCorrente conta = Session["ContaCorrente"] as ContaCorrente; //Chama conta para usar as funções dela pra trabalhar Emprestimo emp = Session["emprestimo"] as Emprestimo; //Chama o emprestimo selecionado quando clicou no botão visualizar na função gdvEmprestimos_RowCommand Parcela p = new Parcela(); //Instancia uma parcela que será utilizada para receber a parcela que sera paga int numParcela = 0; //irá receber o numero da parcela filtrado a ser paga recebida como parametro da gridview no botão de pagar parcela antecipada string numero = e.CommandArgument.ToString(); //Recebe o numero da parcela como argumento da gridview sem filtro ex: 3/15 (terceira de quinze parcelas) lblAviso.Text = ""; //Limpa o aviso caso tenha aviso como saldo insuficiente de outra parcela de outro emprestimo if (conta.Saldo >= emp.Parcelas[0].Valor) //verifica se o saldo da conta e maior que o valor da parcela para pagar { numParcela = numero.Length > 4 ? Convert.ToInt32(numero.Substring(0, 2)) : Convert.ToInt32(numero.Substring(0, 1)); //Filtra o numero da parcela int count = 1; emp.Parcelas.ForEach(item => { if (count == numParcela) { p = item; } count++; }); //Busca a parcela do emprestimo a qual o numero se refere e armazena na instância de parcela //Session["parcela"] = p; emp.PagarParcela(p); //Usa o metodo do emprestimo no caso para pagar a parcela Session["ContaCorrente"] = conta; //Devolve a conta a Session atualizada PopulateGridParcelas(emp.Id); //Atualiza a grid de Parcelas nesse caso passa o id do emprestimo de parametro if (!emp.Pendente) //Verifica se o emprestimo ainda tem parcelas pendentes, se não tiver mais sua gridview de parcela desaparcel { gdvParcelasDebitoEmConta.DataSource = null; gdvParcelasDebitoEmConta.DataBind(); } PopulateGridEmprestimos(); } else //Se não tem saldo na conta, informa o usuario de saldo insuficiente { lblAviso.Text = "Saldo insuficiente."; } }