<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AgregarCarrito.aspx.cs" Inherits="WebSiteElVeloz.AgregarCarrito" MasterPageFile="~/Principal.Master"%>
<asp:Content ID ="Carrito" ContentPlaceHolderID ="Contenido" runat ="server" >
<form id="frmcarrito" runat="server">
<h1 class="style1">Lista de Compras "Distribuidora El Veloz "</h1>
<div >
<h3><a href ="pedido.aspx" style="text-align: right ">Regresar...</a></h3>
</div>
<asp:GridView ID="gvProductos" runat="server" DataKeyNames ="IdProducto"
AutoGenerateColumns="false" BorderStyle="None" GridLines ="None"
onrowcommand="gvProductos_RowCommand" AutoGenerateEditButton="true"
onrowcancelingedit="gvProductos_RowCancelingEdit"
onrowediting="gvProductos_RowEditing"
onrowupdating="gvProductos_RowUpdating" >
<Columns >
<asp:TemplateField >
<ItemTemplate >
<asp:image ID ="lblImagen" runat ="server" width="130px" ImageUrl ='<%# "~/IMAGENES/" + Eval("Imagen") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-VerticalAlign ="Top" ItemStyle-HorizontalAlign ="Left" HeaderText ="Descripcion" >
<ItemTemplate >
<asp:Label ID ="lblnombre" runat ="server" Text = '<%# Eval("Nombre") %>' ForeColor="#006699" Font-Bold="true" Font-Size="Small" />
<br/>
<asp:Label ID ="lbldescripcion" runat ="server" Text = '<%# Eval("Descripcion") %>' ForeColor="#006699" Font-Bold="true" Font-Size="Small" />
<br/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-VerticalAlign ="Top" ItemStyle-HorizontalAlign ="Left" HeaderText =" Precio " >
<ItemTemplate >
<asp:Label ID ="lblPrecio2" runat ="server" Text = '<%# "S/. " + Eval("Precio") %>' Font-Bold="true" ForeColor="#006699" Font-Size="Small" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-VerticalAlign ="Top" ItemStyle-HorizontalAlign ="Center" HeaderText ="Cantidad" >
<EditItemTemplate>
<asp:DropDownList ID="ddlcant" runat="server">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate >
<asp:Label ID ="lblCant" runat ="server" Text = '<%# Eval("Cantidad ") %>' Font-Bold="true" ForeColor="#006699" Font-Size="Small" ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-VerticalAlign ="Top" ItemStyle-HorizontalAlign ="Left" HeaderText =" SubTotal " >
<ItemTemplate >
<asp:Label ID ="lblSubt" runat ="server" Text = '<%# "S/. " + Eval("SubTotal") %>' Font-Bold="true" ForeColor="#006699" Font-Size="Small" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<ItemTemplate >
<asp:LinkButton ID ="lkbImagen" runat ="server" CommandName ="borrar" CommandArgument = '<%# Eval("IdProducto") %>' >
<img alt="Eliminar" src="images/cart_remove.png" width ="20px" style ="border: none" />
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div class="style1"><asp:Button ID="btncompra" runat="server" Text="Comprar Productos"
ForeColor="#006699" BackColor="White" BorderColor="#006699"
onclick="btncompra_Click"/></div>
</form>
</asp:Content>
<asp:Content ID="Content1" runat="server" contentplaceholderid="head">
</asp:Content>
using MySql.Data;
using MySql.Data.MySqlClient;
namespace WebSiteElVeloz
{
public partial class AgregarCarrito : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
btncompra.Attributes.Add("onclick", "javascript:alert('Comprobante Generado');");
if (!Page.IsPostBack)
{
string codigoproducto = Page.Request.QueryString["codigo"];
if (string.IsNullOrEmpty(codigoproducto))
Page.Response.Redirect("~/pedido.aspx");
productosDAL producto = new productosDAL();
producto.AbrirConex(ConfigurationManager.ConnectionStrings["cadena"].ConnectionString);
MySqlDataReader dr;
dr = producto.ObtenerDatosProducto(int.Parse(codigoproducto));
RegistroCarroCompra regCarroCompra = new RegistroCarroCompra();
while (dr.Read())
{
regCarroCompra = new RegistroCarroCompra();
regCarroCompra.IdProducto = int.Parse(dr["id"].ToString());
regCarroCompra.Nombre = dr["nombrecomercial"].ToString();
regCarroCompra.Precio = decimal.Parse(dr["precioventa"].ToString());
regCarroCompra.Imagen = dr["imagen"].ToString();
regCarroCompra.Descripcion = dr["empresa"].ToString();
regCarroCompra.Cantidad = 1;
regCarroCompra.SubTotal = regCarroCompra.Cantidad * regCarroCompra.Precio;
}
producto.CerrarConex(ConfigurationManager.ConnectionStrings["cadena"].ConnectionString);
List<RegistroCarroCompra> ListaRegCarroCompra = null;
if (Session["CarroCompras"] == null)
ListaRegCarroCompra = new List<RegistroCarroCompra>();
else
ListaRegCarroCompra = (List<RegistroCarroCompra>)Session["CarroCompras"];
if (!ProductoYaExiste(int.Parse(codigoproducto), ListaRegCarroCompra))
ListaRegCarroCompra.Add(regCarroCompra);
Session["CarroCompras"] = ListaRegCarroCompra;
gvProductos.DataSource = Session["CarroCompras"];
gvProductos.DataBind();
}
}
protected void gvProductos_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "borrar")
borrar(int.Parse(e.CommandArgument.ToString()));
}
private void borrar(int codigo)
{
// Implemementar
List<RegistroCarroCompra> ListaRegCarroCompra = null;
ListaRegCarroCompra = (List<RegistroCarroCompra>)Session["CarroCompras"];
int posicion = 0;
foreach (RegistroCarroCompra item in ListaRegCarroCompra )
{
if (item.IdProducto == codigo)
break;
posicion += 1;
}
ListaRegCarroCompra.RemoveAt(posicion );
Session["CarroCompras"] = ListaRegCarroCompra;
gvProductos.DataSource = Session["CarroCompras"];
gvProductos.DataBind();
}
protected void gvProductos_RowEditing(object sender, GridViewEditEventArgs e)
{
gvProductos.EditIndex = e.NewEditIndex;
int id = Convert.ToInt32(gvProductos.DataKeys[e.NewEditIndex].Value);
gvProductos.DataSource = Session["CarroCompras"];
gvProductos.DataBind();
DropDownList combo = gvProductos.Rows[e.NewEditIndex].FindControl("ddlcant") as DropDownList;
if (combo != null)
{
for(int i =1;i <=50;i ++){
combo.Items.Add(i.ToString());
combo.DataBind();
}
}
}
protected void gvProductos_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvProductos.EditIndex = -1;
gvProductos.DataSource = Session["CarroCompras"];
gvProductos.DataBind();
}
protected void gvProductos_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(gvProductos.DataKeys[e.RowIndex].Value);
DropDownList combo = gvProductos.Rows[e.RowIndex].FindControl("ddlcant") as DropDownList;
int cant = Convert.ToInt32(combo.SelectedValue);
}
}
public struct RegistroCarroCompra
{
public int IdProducto { get; set; }
public string Nombre { get; set; }
public string Descripcion { get; set; }
public decimal Precio { get; set; }
public decimal SubTotal { get; set; }
public int Cantidad { get; set; }
public string Imagen { get; set; }
}
}