public FormularioCrudArticuloDialogView(ItemCRUDAction action, Object articulo = null) { this.DataContext = new FormularioCrudArticuloVM(action, articulo); InitializeComponent(); //Según la acción se cambian textos y títulos descriptivos y si la acción es de eliminar los campos se desactivan para que no se puedan modificar. if (action == ItemCRUDAction.Insert_Item) { VentanaCrudItemsGroupBox.Header = "Añadir artículo"; AceptarButton.Content = "Añadir artículo"; mensajeOpcion = "añadir"; } else if (action == ItemCRUDAction.Update_Item) { VentanaCrudItemsGroupBox.Header = "Modificar artículo"; CompruebaExpanders(); AceptarButton.Content = "Modificar artículo"; mensajeOpcion = "modificar"; } else if (action == ItemCRUDAction.Delete_Item) { VentanaCrudItemsGroupBox.Header = "Eliminar artículo"; AceptarButton.Content = "Eliminar artículo"; mensajeOpcion = "eliminar"; CompruebaExpanders(); SoloLecturaDeleteItem(); } }
/// <summary> /// Muestra el diálogo para el mantenimiento de los artículos especificando la acción a realizar /// </summary> /// <param name="action">Acción a realizar en el mantenimiento de artículos</param> /// <returns>El formulario adaptado a la acción</returns> public FormularioCrudArticuloDialogView ItemCrud_Execute(ItemCRUDAction action) { FormularioCrudArticuloDialogView formularioCrudArticulo; if (action == ItemCRUDAction.Insert_Item) { formularioCrudArticulo = new FormularioCrudArticuloDialogView(action, new articulos()); } else { formularioCrudArticulo = new FormularioCrudArticuloDialogView(action, ArticuloSeleccionado); } //Pedir pin return(formularioCrudArticulo); }
//Manejador del comando para cambiar la acción que se va a realizar sobre los articulos del inventario según el botón que se haya pulsado y abrir el formulario de mantenimiento de artículos. private void ItemCrudCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { try { switch ((e.OriginalSource as Button).Name) { case "NuevoArticuloButton": itemAction = ItemCRUDAction.Insert_Item; break; case "UpdateArticuloButton": itemAction = ItemCRUDAction.Update_Item; break; case "DeleteArticuloButton": itemAction = ItemCRUDAction.Delete_Item; break; //La acción por defecto es la de insertar un nuevo artículo default: itemAction = ItemCRUDAction.Insert_Item; break; } //Después de seleccionar la acción se muestra el diálogo con el formulario de mantenimiento de artículos FormularioCrudArticuloDialogView formularioCrudArticulo = (DataContext as PanelInventariosVM).ItemCrud_Execute(itemAction); if (formularioCrudArticulo != null) { formularioCrudArticulo.WindowStartupLocation = WindowStartupLocation.CenterScreen; formularioCrudArticulo.ShowInTaskbar = false; formularioCrudArticulo.ShowDialog(); } } catch (Exception ex) { MessageBox.Show("ha ocurrido un error mostrando el formulario: " + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
//Constructor public FormularioCrudArticuloVM(ItemCRUDAction action, Object articuloCrud = null) { itemAction = action; ListaInventarios = BbddService.GetInventarios(); ListaCategorias = BbddService.GetCategorias(); ListaColores = BbddService.GetColores(); //Si se va a insertar un nuevo artículo if (itemAction == ItemCRUDAction.Insert_Item) { //Se inicializa un artículo y por defecto tendrá tallas textiles ArticuloCrud = new articulos(); TallasArticuloNuevo(); } else { ArticuloCrud = (articulos)articuloCrud; //Se asignan las tallas y los números del artículo actual (aunque uno de los dos será null, se evaluará más tarde) TallasTextiles = ArticuloCrud.TALLASTEXTILES; NumerosCalzado = ArticuloCrud.NUMEROSCALZADO; } }