Usuário com melhor resposta
Função Delete no Grid + Stored !!! Ajuda !!!!

Pergunta
-
Ola pessoal, estou com um problema em meu projeto Web, tenho uma determinada grid e nela eu passo os valores das vendas a prazo, porem quando eu dou a baixa em uma determinada venda ela é efetuada mas não sai da grid ! Eu teria de fazer uma função de deletar e uma stored mas não sei por onde começar.... Por favor me ajudem ! Segue o codigo inteiro da pagina de vendas abaixo:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using loff_BLL;
using Loff_ENT;
using LOFF_ENT;
using SistemaLoff.Restrito.Relatorio;
namespace SistemaLoff.Restrito.Venda
{
public partial class ConsVendaClientes : System.Web.UI.Page
{
static SqlDataReader drProduto;
private static int idProduto;
private static int idTamProdAnterior;
private static int desconto;
private static int idPagVista;
private static int idVenda;
private static Double ValorProduto;
private static Double ValorAnterior;
private static int idvendaP;
private static int idPagP;
private static int qntEstoque;
private static int IdProdutoVenda;
static List<Cliente> ListaCliente = new List<Cliente>();
private static int IdCliente = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
IdCliente = 0;
gridVendasAVista.DataSource = null;
ListaCliente.Clear();
}
}
protected void btnCons_Click(object sender, EventArgs e)
{
}
protected void btnConsNome_Click(object sender, EventArgs e)
{
try
{
ClienteBLL objClienteBLL = new ClienteBLL();
if (rbEscolhaCliente.SelectedValue == "1")
{
SqlDataReader drClientes = objClienteBLL.consultaClienteNome(txtNomeCliente.Text);
if (drClientes.HasRows)
{
while (drClientes.Read())
{
Cliente ClienteENT = new Cliente();
ClienteENT.Nome_RazaoSocial1 = drClientes["Nome_RazaoSocial"].ToString();
ClienteENT.IdCliente1 = int.Parse(drClientes["IdCliente"].ToString());
ClienteENT.CPF_CNPJ1 = drClientes["Cpf_Cnpj"].ToString();
ClienteENT.Cidade1 = drClientes["Cidade"].ToString();
ClienteENT.Bairro1 = drClientes["Bairro"].ToString();
ClienteENT.Rua1 = drClientes["Rua"].ToString();
ClienteENT.Numero1 = int.Parse(drClientes["Numero"].ToString());
ClienteENT.TelCel1 = drClientes["TelCel"].ToString();
ClienteENT.TelFixo1 = drClientes["TelFixo"].ToString();
ListaCliente.Add(ClienteENT);
}
dropNomes.DataSource = ListaCliente;
dropNomes.DataBind();
dropNomes.Visible = true;
btnSelecionar.Visible = true;
btnConsNome.Visible = false;
txtNomeCliente.Visible = false;
}
- Editado Jonathan Assunção quarta-feira, 25 de julho de 2012 17:22
- Movido C. Augusto Proiete [MVP]Moderator segunda-feira, 30 de julho de 2012 12:35 Movido para forum apropriado (De:C#)
Respostas
-
Ok peço desculpas pela extensão do codigo, eu não queria que ninguem " ajeitase" para mim, somente era para entender meu raciocínio como eu disse no texto depois do codigo amigo, mas obrigado por tudo e não precisava dizer que "ninguem ta ganhando para isso" pois sei muito bem que aqui é um forum de ajuda, ok
Att,
Jonathan R. Assunção
- Marcado como Resposta Jonathan Assunção segunda-feira, 30 de julho de 2012 16:33
- Editado Jonathan Assunção segunda-feira, 30 de julho de 2012 16:39
-
Problema Resolvido:
public void exclui(int id)
{
SqlConnection conn = new SqlConnection(uteis.GetConnectionString(""));
SqlCommand dbComm = new SqlCommand();
try
{
conn.Open();
dbComm.Connection = conn;
dbComm.CommandType = CommandType.StoredProcedure;
dbComm.Com
dbComm.CommandText = "[sp_ExcluiProdutoVenda]";
dbComm.Parameters.Add("@id", SqlDbType.Int).Value = id;
}
catch (Exception ex)
{
throw (ex);
}
}
Vlww Galera
Jonathan R. Assunção
- Marcado como Resposta Jonathan Assunção segunda-feira, 30 de julho de 2012 18:58
Todas as Respostas
-
....continua
else
{
string Message = "Aluno não encontrado!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Message), true);
}
}
else if (rbEscolhaCliente.SelectedValue == "2")
{
SqlDataReader drClientes = objClienteBLL.consultaClienteCPF(txtNomeCliente.Text);
if (drClientes.HasRows)
{
while (drClientes.Read())
{
Cliente ClienteENT = new Cliente();
ClienteENT.Nome_RazaoSocial1 = drClientes["Nome_RazaoSocial"].ToString();
ClienteENT.IdCliente1 = int.Parse(drClientes["IdCliente"].ToString());
ClienteENT.CPF_CNPJ1 = drClientes["Cpf_Cnpj"].ToString();
ClienteENT.Cidade1 = drClientes["Cidade"].ToString();
ClienteENT.Bairro1 = drClientes["Bairro"].ToString();
ClienteENT.Rua1 = drClientes["Rua"].ToString();
ClienteENT.Numero1 = int.Parse(drClientes["Numero"].ToString());
ClienteENT.TelCel1 = drClientes["TelCel"].ToString();
ClienteENT.TelFixo1 = drClientes["TelFixo"].ToString();
IdCliente = int.Parse(drClientes["IdCliente"].ToString());
ListaCliente.Add(ClienteENT);
}
for (int i = 0; i < ListaCliente.Count; i++)
{
lblNomeCLiente.Text = ListaCliente[i].Nome_RazaoSocial1;
lblCpfCliente.Text = ListaCliente[i].CPF_CNPJ1;
lblTelCel.Text = ListaCliente[i].TelCel1;
lblTelFixo.Text = ListaCliente[i].TelFixo1;
lblRua.Text = ListaCliente[i].Rua1;
lblNumero.Text = ListaCliente[i].Numero1.ToString();
lblBairro.Text = ListaCliente[i].Bairro1;
lblCidade.Text = ListaCliente[i].Cidade1;
Session["NomeCliente"] = ListaCliente[i].Nome_RazaoSocial1;
}
pnIdentificacao.Visible = true;
pnConsultaUsuario.Visible = false;
pnCons.Visible = false;
Session["idVendaGrid"] = IdCliente;
//compras a vista do cliente acima
gridVendasAVista.DataBind();
gridVendasAVista.Visible = true;
}
else
{
string Message = "Aluno não encontrado!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Message), true);
}
}
}
catch (FormatException)
{
string Message = "Verifique os campos!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert", string.Format("alert('{0}');", Message), true);
}
catch (SqlException)
{
string Message = "Ocorreu um Erro no Banco de Dados. Entre em Contato com o Fornecedor!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert", string.Format("alert('{0}');", Message), true);
}
}
Jonathan R. Assunção
-
... continua
protected void btnSelecionar_Click(object sender, EventArgs e)
{
pnConsultaUsuario.Visible = false;
//dados do cliente
for (int i = 0; i < ListaCliente.Count; i++)
{
lblNomeCLiente.Text = ListaCliente[i].Nome_RazaoSocial1;
lblCpfCliente.Text = ListaCliente[i].CPF_CNPJ1;
lblTelCel.Text = ListaCliente[i].TelCel1;
lblTelFixo.Text = ListaCliente[i].TelFixo1;
lblRua.Text = ListaCliente[i].Rua1;
lblNumero.Text = ListaCliente[i].Numero1.ToString();
lblBairro.Text = ListaCliente[i].Bairro1;
lblCidade.Text = ListaCliente[i].Cidade1;
Session["NomeCliente"] = ListaCliente[i].Nome_RazaoSocial1;
}
IdCliente = int.Parse(dropNomes.SelectedValue.ToString());
Session["idVendaGrid"] = IdCliente;
//compras a vista do cliente acima
gridVendasAVista.DataBind();
gridVendasAVista.Visible = true;
pnCons.Visible = false;
pnIdentificacao.Visible = true;
pnComprasAVista.Visible = true;
pnComprasAPrazo.Visible = true;
}
protected void gridVendasAVista_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
LOFF_ENT.ProdutosDaVenda objProdutosVenda = new LOFF_ENT.ProdutosDaVenda();
objProdutosVenda.IdVenda1 = int.Parse(gridVendasAVista.DataKeys[gridVendasAVista.SelectedIndex].Values["IdVenda"].ToString());
idVenda = int.Parse(gridVendasAVista.DataKeys[gridVendasAVista.SelectedIndex].Values["IdVenda"].ToString());
desconto = int.Parse(gridVendasAVista.DataKeys[gridVendasAVista.SelectedIndex].Values["Desconto"].ToString());
//id da tab venda a vista
idPagVista = int.Parse(gridVendasAVista.DataKeys[gridVendasAVista.SelectedIndex].Values["IdPagVista"].ToString());
ProdutosDaVendaBLL objBLL = new ProdutosDaVendaBLL();
SqlDataReader dr = objBLL.ConsultaProdutosVenda(objProdutosVenda);
List<Produto> ListaProduto = new List<Produto>();
if (dr.HasRows)
{
while (dr.Read())
{
Produto objProduto = new Produto();
objProduto.Descricao1 = dr["Descricao"].ToString();
//pega o valor do produto
objProduto.ValorParcial1 = Convert.ToDouble(dr["precoVenda"].ToString());
//seria o idProdutoVenda
objProduto.IdProduto = int.Parse(dr["IdProdutoVenda"].ToString());
objProduto.IdTamPRoduto = int.Parse(dr["idTamanhoPreco"].ToString());
ListaProduto.Add(objProduto);
}
gridProdutos.DataSource = ListaProduto;
gridProdutos.DataBind();
}
}
catch (Exception)
{
throw;
}
}
Jonathan R. Assunção
-
...continua
protected void rbEscolhaCliente_SelectedIndexChanged(object sender, EventArgs e)
{
txtNomeCliente.Visible = true;
btnConsNome.Visible = true;
pnConsultaUsuario.Visible = true;
if (rbEscolhaCliente.SelectedValue == "1")
{
lblNomeCPF.Text = "Digite o Nome do Aluno";
}
else
{
lblNomeCPF.Text = "Digite o CPF do Aluno";
}
}
protected void btnConsProd_Click(object sender, EventArgs e)
{
try
{
ProdutosBLL objBLL = new ProdutosBLL();
string Consulta = txtDescricaoPesq.Text;
int escolha = int.Parse(rbEscolha.SelectedValue.ToString());
drProduto = objBLL.ConsultaProdutoDescricao(Consulta, escolha);
if (drProduto.HasRows)
{
drProduto.Read();
idProduto = int.Parse(drProduto["IdProduto"].ToString());
lblProdutoCons.Text = "Produto = " + drProduto["Descricao"].ToString();
lblProdutoCons.Visible = true;
hfIDproduto.Value = idProduto.ToString();
ddlTamanho.DataBind();
//chama o metodo do ddl para atualizar o valor
ddlTamanho_SelectedIndexChanged(null, null);
btnSim.Visible = true;
btnNao.Visible = true;
lblTamanho.Visible = true;
ddlTamanho.Visible = true;
lblValorConsulta.Visible = true;
}
else
{
string Message = "Produto Não Encontrado!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert", string.Format("alert('{0}');", Message), true);
lblProdutoCons.Visible = false;
lblValorConsulta.Visible = false;
lblVerificaSN.Visible = false;
btnNao.Visible = false;
btnSim.Visible = false;
lblTamanho.Visible = false;
ddlTamanho.Visible = false;
lblValorConsulta.Visible = false;
lblProdutoCons.Visible = false;
}
}
catch (FormatException)
{
string Message = "Verifique os campos!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert", string.Format("alert('{0}');", Message), true);
}
catch (SqlException)
{
string Message = "Ocorreu um Erro no Banco de Dados. Entre em Contato com o Fornecedor!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert", string.Format("alert('{0}');", Message), true);
}
}
Jonathan R. Assunção
-
... continua
protected void ddlTamanho_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
TamanhoPreco objENT = new TamanhoPreco();
TamanhoPrecoBLL objBLL = new TamanhoPrecoBLL();
objENT.IdTamanhoProduto = int.Parse(ddlTamanho.SelectedValue.ToString());
SqlDataReader dr = objBLL.ConsultaTamPrecoIndividual(objENT);
if (dr.HasRows)
{
dr.Read();
double valor = Convert.ToDouble(dr["PrecoVenda"].ToString());
lblValorConsulta.Text = "Valor =R$" + valor.ToString("#,##0.00");
ValorProduto = valor;
lblValorConsulta.Visible = true;
lblqnt.Visible = true;
qntEstoque = int.Parse(dr["Qnt"].ToString());
lblqnt.Text = "Quantidade : " + qntEstoque.ToString();
}
}
catch (Exception)
{
throw;
}
}
protected void btnSim_Click(object sender, EventArgs e)
{
try
{
if (qntEstoque >= 1)
{
#region altera produtos da venda
LOFF_ENT.ProdutosDaVenda objENT = new LOFF_ENT.ProdutosDaVenda();
objENT.IdTamProduto = int.Parse(ddlTamanho.SelectedValue.ToString());
objENT.IdProduto1 = int.Parse(drProduto["IdProduto"].ToString());
objENT.IdProdutoVenda = IdProdutoVenda;
ProdutosDaVendaBLL objBLL = new ProdutosDaVendaBLL();
objBLL.AlteraProdutoDaVenda(objENT);
//altera o produto da venda -------------------ok
#endregion
#region altera vennda a vista
//alterar a venda a vista
objENT.IdVenda1 = idVenda;
SqlDataReader dr = objBLL.ConsultaProdutosVenda(objENT);
List<Produto> ListaProduto = new List<Produto>();
double valor = 0;
//pega valores dos produtos para fazer a alteração
if (dr.HasRows)
{
while (dr.Read())
{
valor += Convert.ToDouble(dr["precoVenda"].ToString());
}
}
VendaAVista objEntVista = new VendaAVista();
objEntVista.IdPagVista1 = idPagVista;
valor = valor - ((valor*desconto)/100);
objEntVista.ValorTotalVenda1 = valor;
VendaVistaBLL objVistaBLL = new VendaVistaBLL();
objVistaBLL.AlteraProdutoDaVenda(objEntVista);
#endregion
Jonathan R. Assunção
-
.... continua
//falta acrescentar e decrementar os stok
//4º-------------------------------------------------
#region altera estok -
int idTamProdu = int.Parse(ddlTamanho.SelectedValue.ToString());
SqlDataReader drProdTamQnt;
TamanhoPreco objEnt = new TamanhoPreco();
objEnt.IdTamanhoProduto = idTamProdu;
TamanhoPrecoBLL objBll = new TamanhoPrecoBLL();
drProdTamQnt = objBll.ConsultaTamPrecoIndividual(objEnt);
if (drProdTamQnt.HasRows)
{
drProdTamQnt.Read();
int qnt = int.Parse(drProdTamQnt["Qnt"].ToString());
int QntAltera = qnt - 1;
objEnt.Qnt = QntAltera;
objBll.AlteraEstoqueProdutos(objEnt);
}
#endregion
#region altera estok +
SqlDataReader drProdTamQnst;
objEnt.IdTamanhoProduto = idTamProdAnterior;
drProdTamQnst = objBll.ConsultaTamPrecoIndividual(objEnt);
if (drProdTamQnst.HasRows)
{
drProdTamQnst.Read();
int qnt = int.Parse(drProdTamQnst["Qnt"].ToString());
int QntAltera = qnt + 1;
objEnt.Qnt = QntAltera;
objBll.AlteraEstoqueProdutos(objEnt);
}
#endregion
#region insere na tabela de trocas
TrocaClienteBLL objTrocaBLL = new TrocaClienteBLL();
TrocaCliente objTrocaENT = new TrocaCliente();
objTrocaENT.IdCliente = IdCliente;
objTrocaENT.IdProdutoAserLevado = int.Parse(ddlTamanho.SelectedValue.ToString());
objTrocaENT.IdProdutoAserTrocado = idTamProdAnterior;
objTrocaENT.DataTroca1 = DateTime.Now;
objTrocaENT.Venda1 = idVenda;
objTrocaBLL.InsereTrocaCliente(objTrocaENT);
#endregion
Jonathan R. Assunção
-
... continua
string Message = "Troca Realizada com Sucesso!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert",
string.Format("alert('{0}');", Message), true);
ScriptManager.RegisterStartupScript(Page, typeof (Page), "redirecionamento",
"window.location.href='../../Restrito/DefaultRestrito.aspx';",
true);
}
}
catch (Exception)
{
string Message = "Ocorreu um Erro!! ";
ScriptManager.RegisterStartupScript(Page, this.GetType(), "alert", string.Format("alert('{0}');", Message), true);
}
}
protected void gridProdutos_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
IdProdutoVenda = int.Parse(gridProdutos.DataKeys[gridProdutos.SelectedIndex].Values["IdProduto"].ToString());
ValorAnterior = Convert.ToDouble(gridProdutos.DataKeys[gridProdutos.SelectedIndex].Values["ValorParcial1"].ToString());
idTamProdAnterior = int.Parse(gridProdutos.DataKeys[gridProdutos.SelectedIndex].Values["IdTamPRoduto"].ToString());
pnProdutoVenda.Visible = true;
pnComprasAPrazo.Visible = false;
pnComprasAVista.Visible = false;
btnNovaConsulta.Visible = false;
}
catch (Exception)
{
throw;
}
}
protected void gridVendaPrazo_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
LOFF_ENT.ProdutosDaVenda objProdutosVenda = new LOFF_ENT.ProdutosDaVenda();
objProdutosVenda.IdVenda1 = int.Parse(gridVendaPrazo.DataKeys[gridVendaPrazo.SelectedIndex].Values["IdVenda"].ToString());
ProdutosDaVendaBLL objBLL = new ProdutosDaVendaBLL();
SqlDataReader dr = objBLL.ConsultaProdutosVenda(objProdutosVenda);
List<Produto> ListaProduto = new List<Produto>();
if (dr.HasRows)
{
while (dr.Read())
{
Produto objProduto = new Produto();
objProduto.Descricao1 = dr["Descricao"].ToString();
//pega o valor do produto
objProduto.ValorParcial1 = Convert.ToDouble(dr["PrecoVenda"].ToString());
ListaProduto.Add(objProduto);
}
gridProdutosPrazo.DataSource = ListaProduto;
gridProdutosPrazo.DataBind();
}
}
catch (Exception)
{
throw;
}
}
Jonathan R. Assunção
-
... continua
protected void btnNovaConsulta_Click(object sender, EventArgs e)
{
pnIdentificacao.Visible = false;
pnComprasAVista.Visible = false;
pnComprasAPrazo.Visible = false;
gridProdutos = null;
gridVendaPrazo = null;
gridVendasAVista = null;
gridProdutosPrazo = null;
pnCons.Visible = true;
pnConsultaUsuario.Visible = false;
dropNomes.Visible = false;
txtNomeCliente.Text = "";
btnSelecionar.Visible = false;
rbEscolhaCliente.SelectedValue = null;
}
protected void rbEscolha_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (rbEscolha.SelectedValue == "1")
{
txtDescricaoPesq.Visible = true;
btnConsProd.Visible = true;
Label1.Text = "Digite o Código do Produto ";
Label1.Visible = true;
btnConsProd.Visible = true;
}
else if (rbEscolha.SelectedValue == "0")
{
txtDescricaoPesq.Visible = true;
btnConsProd.Visible = true;
Label1.Text = "Digite a Descrição do Produto ";
Label1.Visible = true;
btnConsProd.Visible = true;
}
}
catch (Exception)
{
throw;
}
}
protected void btnNao_Click(object sender, EventArgs e)
{
}
protected void btnGerar_Click(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string str = "../../Restrito/Relatorio/rptVendaId.aspx";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("window.open('" + str + "', '_blank',");
sb.Append("'menubar=no,status=no,toolbar=no');");
sb.Append("</script>");
Type t = this.GetType();
if (!ClientScript.IsClientScriptBlockRegistered(t, "PopupScript"))
ClientScript.RegisterClientScriptBlock(t, "PopupScript", sb.ToString());
}
else
{
Session["idPagPrazo"] = idPagP;
Session["IDVendaPrazo"] = idvendaP;
string str = "../../Restrito/Relatorio/rptVendaPrazoID.aspx";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("window.open('" + str + "', '_blank',");
sb.Append("'menubar=no,status=no,toolbar=no');");
sb.Append("</script>");
Type t = this.GetType();
if (!ClientScript.IsClientScriptBlockRegistered(t, "PopupScript"))
ClientScript.RegisterClientScriptBlock(t, "PopupScript", sb.ToString());
}
}
Jonathan R. Assunção
-
... continua
private static double soma=0;
protected void gridVendaPrazo_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string valor = e.Row.Cells[6].Text;
string din = "";
for (int i = 3; i < valor.Length; i++)
{
din += valor[i].ToString();
}
soma += Convert.ToDouble(din);
lblTotalGrid.Text = "Total = R$ " + soma.ToString("#,##0.00");
}
}
catch (Exception)
{
throw;
}
}
protected void gridVendaPrazo_Load(object sender, EventArgs e)
{
soma=0;
}
}
}
Desde já agradeço pela atenção galera, não estou conseguindo mesmo excluir o item da gridview, so para recaptular, quando o pagamento for efetuado o item teria de sair da grid ok, abraços galera e desculpa o codigo enorme ai mas achei valido para analise,
Att,
Jonathan R. Assunção
-
-
-
Ah mais uma coisa, não adianta colocar todo o seu código aqui. Dificilmente alguém vai copiar todo esse código e ajeitar pra você, ninguém ta ganhando para isso, e mesmo que fizesse provavelmente seu código não iria funcionar em outra máquina.
Tente colocar apenas parte do código, quer ter respostas rápidas, coloque perguntas pequenas e sucintas.
- Sugerido como Resposta Rafa Santos segunda-feira, 30 de julho de 2012 14:43
-
Ok peço desculpas pela extensão do codigo, eu não queria que ninguem " ajeitase" para mim, somente era para entender meu raciocínio como eu disse no texto depois do codigo amigo, mas obrigado por tudo e não precisava dizer que "ninguem ta ganhando para isso" pois sei muito bem que aqui é um forum de ajuda, ok
Att,
Jonathan R. Assunção
- Marcado como Resposta Jonathan Assunção segunda-feira, 30 de julho de 2012 16:33
- Editado Jonathan Assunção segunda-feira, 30 de julho de 2012 16:39
-
Problema Resolvido:
public void exclui(int id)
{
SqlConnection conn = new SqlConnection(uteis.GetConnectionString(""));
SqlCommand dbComm = new SqlCommand();
try
{
conn.Open();
dbComm.Connection = conn;
dbComm.CommandType = CommandType.StoredProcedure;
dbComm.Com
dbComm.CommandText = "[sp_ExcluiProdutoVenda]";
dbComm.Parameters.Add("@id", SqlDbType.Int).Value = id;
}
catch (Exception ex)
{
throw (ex);
}
}
Vlww Galera
Jonathan R. Assunção
- Marcado como Resposta Jonathan Assunção segunda-feira, 30 de julho de 2012 18:58