public int DisminuirProductos(int cant, int idProducto) { LinearGradientBrush vacio = new LinearGradientBrush(); vacio.StartPoint = new System.Windows.Point(0, 0.5); vacio.EndPoint = new System.Windows.Point(10, 0.5); vacio.GradientStops.Add(new GradientStop(Colors.White, 0.1)); int cantAux; if (selectedUbicacion == null) { return -1; } if (selectedUbicacion.Cantidad>0) { cantAux = selectedUbicacion.Cantidad - cant ; if (cantAux < 0) { System.Windows.MessageBox.Show("No hay suficientes productos"); return -1; } else selectedUbicacion.VolOcupado = selectedUbicacion.VolOcupado - cant * selectedUbicacion.VolOcupado / selectedUbicacion.Cantidad; } else { System.Windows.MessageBox.Show("No hay productos en esa ubicacion"); return -1; } Ubicacion ubiModificada = new Ubicacion(); ubiModificada.IdProducto = SelectedProduct.IdProducto; ubiModificada.IdUbicacion = selectedUbicacion.IdUbicacion; ubiModificada.Cantidad = cant; SelectedProduct.Ubicaciones.Add(ubiModificada); selectedUbicacion.Cantidad -= cant; if (selectedUbicacion.Cantidad == 0) { if (ColorAntU != null) ColorAntU = vacio; Columna[selectedUbicacion.CordZ].IdProducto = 0; } Columna[selectedUbicacion.CordZ].Cantidad = selectedUbicacion.Cantidad; Columna[selectedUbicacion.CordZ].VolOcupado = selectedUbicacion.VolOcupado; CantActual = selectedUbicacion.Cantidad.ToString(); VolOcu = selectedUbicacion.VolOcupado.ToString(); this.Mostrar(); return 1; }
public void onClickChange(object sender, RoutedEventArgs e) { int X = Int16.Parse((sender as Button).Name.Substring(1, (sender as Button).Name.IndexOf("X") - 1)); int Y = Int16.Parse((sender as Button).Name.Substring((sender as Button).Name.IndexOf("Y") + 1)); BrushConverter conv = new BrushConverter(); SolidColorBrush colorClick = conv.ConvertFromString("LightSkyBlue") as SolidColorBrush; if (Accion == 1) { (sender as Button).Background = this.Background; if (listaZonas == null) { listaZonas = new Dictionary<int, int>(); } try { if (Ubicaciones[X][Y][0].IdTipoZona == 0) { listaZonas[this.IdZona] += 1; } else if (Ubicaciones[X][Y][0].IdTipoZona != this.IdZona) { if (listaZonas[Ubicaciones[X][Y][0].IdTipoZona] < 0) listaZonas[Ubicaciones[X][Y][0].IdTipoZona] = 0; else listaZonas[Ubicaciones[X][Y][0].IdTipoZona] -= 1; listaZonas[this.IdZona] += 1; } } catch (Exception d) { listaZonas.Add(this.IdZona, 1); } for (int k = 0; k < Altura; k++) Ubicaciones[X][Y][k].IdTipoZona = this.IdZona; } else if (Accion ==2) { if (Tipo == 1) { if (colorAnt != null) { (this.Children[Ubicaciones[xAnt][yAnt][0].CordY + Ubicaciones[xAnt][yAnt][0].CordX * NumColumns] as Button).Background = colorAnt; } xAnt = X; yAnt = Y; NumColumnsU = 1; AlturaU = 1; NumRowsU = Altura; ColumnaU = Ubicaciones[X][Y]; colorAnt = (this.Children[Ubicaciones[X][Y][0].CordY + Ubicaciones[X][Y][0].CordX * NumColumns] as Button).Background as SolidColorBrush ; ColorAntU = null; } if (Tipo == 2) { if (ColorAntU != null) { (this.Children[Ubicaciones[xAntU][yAntU][0].CordY + Ubicaciones[xAntU][yAntU][0].CordX * NumColumns] as Button).Background = ColorAntU; } xAntU = X; yAntU = Y; ColorAntU = (this.Children[Ubicaciones[X][Y][0].CordY + Ubicaciones[X][Y][0].CordX * NumColumns] as Button).Background as LinearGradientBrush; if (SelectedProduct != null) { if (Columna[X].IdProducto == SelectedProduct.IdProducto) { CantActual = Columna[X].Cantidad.ToString(); VolOcu = Columna[X].VolOcupado.ToString(); if (int.Parse(VolOcu) > 0) Enable = false; else Enable = true; Permitir = true; } else if (Columna[X].IdProducto == 0) { CantActual = "0"; VolOcu = "0"; Enable = true; Permitir = true; } else { CantActual = "---"; VolOcu = "---"; Enable = false; Permitir = false; } selectedUbicacion = Columna[X]; } } (this.Children[Ubicaciones[X][Y][0].CordY + Ubicaciones[X][Y][0].CordX * NumColumns] as Button).Background = colorClick; } else if (Accion == 3) { if (SelectedProduct != null) { if (Ubicaciones[X][Y][0].IdProducto == 0 ) { TipoZona tz=lstZonas.Find(x => x.IdTipoZona == SelectedZona); Sector sector= tz.LstSectores.Find(x => x.IdProducto == SelectedProduct.IdProducto); Ubicaciones[X][Y][0].IdProducto = SelectedProduct.IdProducto; if (sector != null) { //verifico si puedo agregar o no esa ubicacion al sector ( es decir , si es contigua) Ubicaciones[X][Y][0].IdSector = sector.IdSector; if (sector.Capacidad != 0) { sector.Capacidad = sector.Capacidad /sector.NroUbicaciones + sector.Capacidad ; sector.VolOcupado = (sector.Cantidad / sector.Capacidad) * 100; } sector.NroUbicaciones += 1; sector.LstUbicaciones.Add(Ubicaciones[X][Y][0]); } else { string capAux= Microsoft.VisualBasic.Interaction.InputBox("Ingrese la capacidad que tendra cada columna ", "Capacidad de la columna"); if (String.IsNullOrEmpty(capAux)) { return; } sector = new Sector(); sector.IdProducto = SelectedProduct.IdProducto; sector.Cantidad = 0; sector.VolOcupado = 0; sector.Capacidad = int.Parse(capAux); sector.NroUbicaciones = 1; sector.IdTipoZona = SelectedZona; sector.IdAlmacen = Ubicaciones[X][Y][0].IdAlmacen; sector.LstUbicaciones = new List<Ubicacion>(); sector.LstUbicaciones.Add(Ubicaciones[X][Y][0]); tz.LstSectores.Add(sector); } (this.Children[Ubicaciones[X][Y][0].CordY + Ubicaciones[X][Y][0].CordX * NumColumns] as Button).Background = colorClick; } } } }
public int AgregarProductos(int cant, int vol, int idProducto) { if (selectedUbicacion==null) return -1; int volAux; if (selectedUbicacion.VolOcupado != 0) { volAux =selectedUbicacion.VolOcupado + cant * selectedUbicacion.VolOcupado / selectedUbicacion.Cantidad; if (volAux > 100) { System.Windows.MessageBox.Show("No se pudo ingresar , se superó la capacidad"); return -1; } else if (volAux == 100) { System.Windows.MessageBox.Show("La ubicación esta en su máxima capacidad"); selectedUbicacion.VolOcupado=volAux; } else selectedUbicacion.VolOcupado = volAux; } else { selectedUbicacion.IdProducto = idProducto; selectedUbicacion.VolOcupado = vol; } Ubicacion ubiModificada = new Ubicacion(); ubiModificada.IdProducto = SelectedProduct.IdProducto; ubiModificada.IdUbicacion = selectedUbicacion.IdUbicacion; ubiModificada.Cantidad = cant; SelectedProduct.Ubicaciones.Add(ubiModificada); selectedUbicacion.Cantidad += cant; Columna[selectedUbicacion.CordZ].Cantidad = selectedUbicacion.Cantidad; Columna[selectedUbicacion.CordZ].VolOcupado = selectedUbicacion.VolOcupado; Columna[selectedUbicacion.CordZ].IdProducto = selectedUbicacion.IdProducto; CantActual = selectedUbicacion.Cantidad.ToString(); VolOcu = selectedUbicacion.VolOcupado.ToString(); this.Mostrar(); return 1; }