private void buscarComSus(string tipo, string idarticulo) { visibilidadComplementos(false, tipo); ocultarArticulos(TabArticulos.Tabs.IndexOf(TabArticulos.ActiveTab)); if (!String.IsNullOrEmpty(idarticulo)) { AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = idarticulo; } else { switch (TabArticulos.Tabs.IndexOf(TabArticulos.ActiveTab)) { case 0: AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = EP0.IdArticulo; break; case 1: AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = EP1.IdArticulo; break; case 2: AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = EP2.IdArticulo; break; case 3: AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = EP3.IdArticulo; break; case 4: AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = EP4.IdArticulo; break; case 5: AVE_StockEnTiendaCSObtener.SelectParameters["IdArticulo"].DefaultValue = EP5.IdArticulo; break; } } DataView dv = null; AVE_StockEnTiendaCSObtener.SelectParameters["IdTienda"].DefaultValue = AVE.Contexto.IdTienda; AVE_StockEnTiendaCSObtener.SelectParameters["Tipo"].DefaultValue = tipo; dv = (DataView)AVE_StockEnTiendaCSObtener.Select(new DataSourceSelectArguments()); int i = 1; string tipoBotton; if (tipo == "C") { tipoBotton = "Complemento"; } else { tipoBotton = "Sustituto"; } foreach (System.Data.DataRow row in dv.Table.Rows) { if (i < 6) { //control stock if (tipo == "C") { tabComplementos.Tabs[i - 1].Visible = true; tabComplementosCS.Tabs[i - 1].Visible = true; } else { TabSustituto.Tabs[i - 1].Visible = true; TabSustitutoCS.Tabs[i - 1].Visible = true; } controles.UCStockEnTienda uc = null; switch (tipo) { case "C": uc = tabComplementos.Tabs[i - 1].Controls[1].Controls[1] as controles.UCStockEnTienda; break; case "S": uc = TabSustituto.Tabs[i - 1].Controls[1].Controls[1] as controles.UCStockEnTienda; break; } uc.IdArticulo = row["IdArticulo"].ToString(); uc.CargarStock(); uc.Complementario = true; uc.EP = this; } i++; } }
protected void Page_Load(object sender, EventArgs e) { //Registramos en javascript el control de la caja de texto para usarlo desde otras funciones jscript; string script = "var Talla_Selecionada = document.getElementById('" + hiddenTallas.ClientID + "');"; script += "var Talla_SelecionadaNo = document.getElementById('" + hiddenTallasNo.ClientID + "');"; Page.ClientScript.RegisterStartupScript(typeof(string), "Talla_Selecionada", script, true); btnFoto.Visible = false; if (!Page.IsPostBack) { DataView dv = null; string tallaBuscada = string.Empty; if (Request.QueryString["Talla"] != null) { tallaBuscada = Request.QueryString["Talla"].ToUpper().Trim(); } // Obtenemos la información del producto if (Request.QueryString[Constantes.QueryString.IdArticulo] != null && Request.QueryString["Tipo"] == null) { //Búsqueda normal AVE_StockEnTiendaObtener.SelectParameters["IdTienda"].DefaultValue = AVE.Contexto.IdTienda; dv = (DataView)AVE_StockEnTiendaObtener.Select(new DataSourceSelectArguments()); FotoArticulo.ImageUrl = this.ResolveUrl(ObtenerURL()); } else if (Request.QueryString["Tipo"] != null && Request.QueryString["IdArticulo"] != null) { //Búsqueda de C o S AVE_StockEnTiendaCSObtener.SelectParameters["IdTienda"].DefaultValue = AVE.Contexto.IdTienda; dv = (DataView)AVE_StockEnTiendaCSObtener.Select(new DataSourceSelectArguments()); } if (dv != null && dv.Count > 0) { //// Almacenamos toda la información del producto en dtProductos DataTable dtProductos = dv.Table; //// Almacenamos las tallas en dtTallas. que tieen stock ////DataTable dtTallas = dtProductos.DefaultView.ToTable(true, new string[] { "Talla" }); //DataTable dtTallas = ((DataView)SqlDataTallajes.Select(new DataSourceSelectArguments())).ToTable(true, new string[] { "Talla" }); // //vamos a eliminar Tallas que no son necesarias vamos a visualizar solo 3 tallajes // if (tallaBuscada.Length > 0 && dtTallas.Rows.Count>3) // { // Int32 CounTalla= dtTallas.Rows.Count; // for (int i=0; i < dtTallas.Rows.Count; i++) // { // if (tallaBuscada == dtTallas.Rows[i]["Talla"].ToString().ToUpper()) // { // if (i == 0) // { // //eliminar a partir del indice del 4 tallaje // RemoveTallas(ref dtTallas, 2, (dtTallas.Rows.Count - 1)); // } // else // { // if (i == (dtTallas.Rows.Count - 1)) // { // //eliminamos los tallajes anteriores cuando es el ultimo // RemoveTallas(ref dtTallas, 0, (dtTallas.Rows.Count - 3)); // } // else // { // //esta en medio del tallaje // //eliminamos las posteriores // RemoveTallas(ref dtTallas, i + 1, (dtTallas.Rows.Count - 1)); // //eliminamos las primeras // if (i > 1) // { // if ((i - 2) == 0) // { // RemoveTallas(ref dtTallas, -1, 0); // } // else // { // RemoveTallas(ref dtTallas, -1, (i - 2)); // } // } // } // } // } // } //} //Añadimos las columnas dinámicas al grid. Es una por cada talla devuelta //BoundField bf; //foreach (DataRow dr in dtTallas.Rows) //{ // bf = new BoundField(); // bf.DataField = dr["Talla"].ToString(); //El campo de la columna corresponde al nombre de la talla // bf.HeaderText = dr["Talla"].ToString(); // bf.HeaderStyle.Width = Unit.Pixel(50); // bf.ItemStyle.HorizontalAlign = HorizontalAlign.Center; // //Resaltamos la columna si es la talla buscada // if (tallaBuscada == dr["Talla"].ToString().ToUpper()) // { // //bf.HeaderStyle.CssClass = "GridItemTallaBuscada"; // bf.ItemStyle.CssClass += " GridItemTallaBuscada"; // } // GridView2.Columns.Add(bf); //} //// Añadimos las columnas con articulo, color y tallas a la tabla auxiliar //DataTable dtAux = new DataTable(); //dtAux.Columns.Add("Articulo"); //dtAux.Columns.Add("Color"); //for (int i = 0; i < dtTallas.Rows.Count; i++) //{ // dtAux.Columns.Add(dtTallas.Rows[i][0].ToString()); //} ////Establecemos las cantidades en las filas correspondientes //for (int i = 0; i < dtProductos.Rows.Count; i++) //{ // int Fila = Esta(dtAux, dtProductos.Rows[i]["idArticulo"].ToString()); // // Si se encuentra ya el producto, me indica la fila donde tengo que escribir el valor // if (Fila >= 0) // { // for (int j = 0; j < dtAux.Columns.Count; j++) // if (dtProductos.Rows[i]["Talla"].ToString() == dtAux.Columns[j].ColumnName.ToString()) // dtAux.Rows[Fila][dtAux.Columns[j].ColumnName] = dtProductos.Rows[i]["Cantidad"]; // } // else // { // // Si no encuentra el producto, añadimos una nueva fila // DataRow dr = dtAux.NewRow(); // dr["Articulo"] = dtProductos.Rows[i]["idArticulo"]; // dr["Color"] = dtProductos.Rows[i]["Color"]; // for (int j = 0; j < dtAux.Columns.Count; j++) // if (dtProductos.Rows[i]["Talla"].ToString() == dtAux.Columns[j].ColumnName.ToString()) // dr[dtAux.Columns[j].ColumnName] = dtProductos.Rows[i]["Cantidad"]; // dtAux.Rows.Add(dr); // } //} // Escribimos en las labels, la descripción y el precio lblDescripcion.Text = dtProductos.Rows[0]["Descripcion"].ToString(); lblPrecioValor.Text = string.Format(" Precio : {0:C}", Decimal.Parse(dtProductos.Rows[0]["Precio"].ToString())); hiddenTallas.Value = dtProductos.Rows[0]["Precio"].ToString(); //// Cargamos en el GridView los datos del DataTable //GridView2.DataSource = dtAux; //GridView2.DataBind(); //Si es un ean o codigoalfa no lo encontraremos así; si es un Compl o susti, menos. ////// Seleccionamos la fila donde se encuentra el producto exacto que hemos buscado ////for (int i = 0; i < GridView2.Rows.Count; i++) ////{ //// if (GridView2.Rows[i].Cells[1].Text == Request.QueryString["Producto"] | GridView2.Rows[i].Cells[1].Text == Request.QueryString["IdArticulo"]) //// GridView2.SelectedIndex = i; ////} // Seleccionamos la primera fila. // GridView2.SelectedIndex = 0; //Establecemos los enlaces // EvaluarEnlaces(); CargarNuevoGrid(); if (GridStock.Rows.Count > 0) { if (GridStock.Rows[0].Cells[0].Text.Equals(Contexto.IdTienda)) { GridStock.SelectedIndex = 0; } } CargarColoresModelo(); if (Request.QueryString["Stock"] != null) { GenerarSolicitud(); } } else if (Request.QueryString[Constantes.QueryString.IdArticulo] != null) { //Response.Redirect("~/StockOtras.aspx?IdArticulo=" + Request.QueryString[Constantes.QueryString.IdArticulo].ToString()); } else { this.lblDescripcion.Text = Resources.Resource.NoInfoProducto; } } else { CargarColoresModelo(); } //Ejecutamos la rutina para montar los enlaces en los valores de stock. No puede hacerse en el RowDataBound porque los //controles que añadimos dinámicamente se pierden en los postbacks (por ejemplo al seleccionar otro producto) //this.MontarEnlacesGrid(); // CargarTabladeTallaje(); }