//adicionar public void additem(ItemdoCarrodeCompras item) { bool itsanewitem = true; foreach (ItemdoCarrodeCompras itemnalista in ListadeCompras) { if (itemnalista.getid() == item.getid() && itemnalista.getidv() == item.getidv()) { itsanewitem = false; itemnalista.setunidades(itemnalista.getunidades() + item.getunidades()); } } if (itsanewitem == true) { this.ListadeCompras.Add(item); } updateunidadestotaisdalista(); updateprecototaldalista(); }
//Abrir janela para editar item na lista de compras protected void ButtonEditarItemdaLista_Click(object sender, EventArgs e) { //Se o utilizador ter sessão Autenticate(); //Se o utilizador ter artigos na sua lista de compras if (Session["ListadeCompras"] == null) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Não tem nenhum artigo que possa atualizar.');", true); } else { //Se o utilizador ter seleccionado um item para editar if (GridViewListadeCompras.SelectedValue == null) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Seleccione o artigo que pretende atualizar.');", true); } else { //Se o item seleccionado existir na variável de sessão ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"]; //Se o item seleccionado existir na base de dados, isto é feito com a mesma função com que se contam as variedades SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString); con.Open(); //Verificar se o produto tem ou não variedades String ProcurarProduto = "select count(*) from ProdutosVariedades where FKId_Produtos=@FKId_Produtos"; SqlCommand comandoProcurarProduto = new SqlCommand(ProcurarProduto, con); comandoProcurarProduto.Parameters.AddWithValue("@FKId_Produtos", GridViewListadeCompras.SelectedRow.Cells[2].Text); int temp = Convert.ToInt16(comandoProcurarProduto.ExecuteScalar().ToString()); if (temp <= 0) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Este produto não está disponível de momento.');", true); } else { ELCHiddenFieldId.Value = GridViewListadeCompras.SelectedRow.Cells[2].Text; ELCHiddenFieldIdv.Value = GridViewListadeCompras.SelectedRow.Cells[3].Text; //Se o produto não tiver variedades ("Sem variedades"), o atributo nome vai ser tirado da tabela Produtos, e se o produto tiver variedades, o atributo nome vai ser tirado da tabela ProdutosVariedades String GetAtributos; if (temp == 1) { GetAtributos = "select Imagem, Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos"; } //Obter a informação do produto da base de dados else { GetAtributos = "select Imagem, Variedade as Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas left join ProdutosVariedades on Produtos.Id_Produtos=ProdutosVariedades.FKId_Produtos where Id_Produtos=@Id_Produtos and ProdutosVariedades.Id_ProdutosVariedades=@Id_ProdutosVariedades"; } SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con); comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", GridViewListadeCompras.SelectedRow.Cells[2].Text); if (temp > 1) { comandoGetAtributos.Parameters.AddWithValue("@Id_ProdutosVariedades", GridViewListadeCompras.SelectedRow.Cells[3].Text); } SqlDataReader dr = comandoGetAtributos.ExecuteReader(); //Obter o número de unidades desejadas da variável de sessão ItemdoCarrodeCompras item = lista.getitematidv(Int32.Parse(ELCHiddenFieldIdv.Value)); //Configurar a página de edição do artigo while (dr.Read()) { ELCProdutoImagem.ImageUrl = dr["Imagem"].ToString(); ELCLabelNomeMarcaeQuantidade.Text = dr["Nome"].ToString(); ELCLabelNomeMarcaeQuantidade.Text += " " + dr["Marca"].ToString(); ELCLabelNomeMarcaeQuantidade.Text += " " + dr["Quantidade"].ToString(); ELCLabelPreco.Text = dr["Preco"].ToString(); } dr.Close(); if (item.getunidades() == 1) { ELCLabelItem.Text = item.getunidades() + " unidade por " + item.getprecototal() + "€"; } else if (item.getunidades() > 1) { ELCLabelItem.Text = item.getunidades() + " unidades por " + item.getprecototal() + "€"; } ELCTextBoxUnidades.Text = item.getunidades().ToString(); UDivEditarListadeCompras.Visible = true; } con.Close(); } } }