cambios nacho
This commit is contained in:
@@ -16,6 +16,8 @@ namespace Vista
|
||||
public partial class FrmProducto : Form
|
||||
{
|
||||
private Producto nuevoproducto = new Producto();
|
||||
private Producto _producto;
|
||||
private bool _esModificacion;
|
||||
|
||||
public FrmProducto()
|
||||
{
|
||||
@@ -24,11 +26,35 @@ namespace Vista
|
||||
CargarTabla();
|
||||
}
|
||||
|
||||
public FrmProducto(Producto producto = null, bool esModificacion = false)
|
||||
{
|
||||
InitializeComponent();
|
||||
_producto = producto ?? new Producto();
|
||||
_esModificacion = esModificacion;
|
||||
CargarCategorias();
|
||||
CargarTabla();
|
||||
InicializarFormulario();
|
||||
}
|
||||
private void InicializarFormulario()
|
||||
{
|
||||
if (_esModificacion && _producto != null)
|
||||
{
|
||||
numericUpDown1.Value = _producto.Id;
|
||||
numericUpDown1.Enabled = false;
|
||||
textBox1.Text = _producto.Nombre;
|
||||
numericUpDown2.Value = (decimal)_producto.Precio;
|
||||
checkBox1.Checked = _producto.Habilitado;
|
||||
comboBox1.SelectedValue = _producto.Categoria.Id;
|
||||
dgvProveedorAñadido.DataSource = _producto.ListarProveedores();
|
||||
}
|
||||
}
|
||||
|
||||
private void CargarTabla()
|
||||
{
|
||||
dgvProveedor.DataSource = null;
|
||||
dgvProveedor.DataSource = ControladoraProveedores.Instance.Listar();
|
||||
}
|
||||
|
||||
private void CargarCategorias()
|
||||
{
|
||||
// Obtener la lista de categorías desde la controladora
|
||||
@@ -42,6 +68,23 @@ namespace Vista
|
||||
comboBox1.DataSource = categorias;
|
||||
}
|
||||
|
||||
private void CargarDatosProducto()
|
||||
{
|
||||
if (_producto != null)
|
||||
{
|
||||
numericUpDown1.Value = _producto.Id;
|
||||
textBox1.Text = _producto.Nombre;
|
||||
numericUpDown2.Value = Convert.ToDecimal(_producto.Precio);
|
||||
checkBox1.Checked = _producto.Habilitado;
|
||||
comboBox1.SelectedItem = _producto.Categoria;
|
||||
|
||||
if (_esModificacion)
|
||||
{
|
||||
numericUpDown1.Enabled = false; // Bloquear el ID
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool ValidarDatos()
|
||||
{
|
||||
string devolucion = "";
|
||||
@@ -63,7 +106,7 @@ namespace Vista
|
||||
}
|
||||
|
||||
// Validar ID (Si es necesario)
|
||||
if (ControladoraProductos.Instance.Listar().Any(p => p.Id == (int)numericUpDown1.Value))
|
||||
if (!_esModificacion && ControladoraProductos.Instance.Listar().Any(p => p.Id == (int)numericUpDown1.Value))
|
||||
{
|
||||
devolucion += "Ya existe un producto con el mismo ID.\n";
|
||||
}
|
||||
@@ -89,16 +132,21 @@ namespace Vista
|
||||
{
|
||||
if (ValidarDatos())
|
||||
{
|
||||
_producto.Nombre = textBox1.Text;
|
||||
_producto.Precio = (double)numericUpDown2.Value;
|
||||
_producto.Habilitado = checkBox1.Checked;
|
||||
_producto.Categoria = (Categoria)comboBox1.SelectedItem;
|
||||
|
||||
nuevoproducto.Id = (int)numericUpDown1.Value;
|
||||
nuevoproducto.Nombre = textBox1.Text;
|
||||
nuevoproducto.Precio = (double)numericUpDown2.Value;
|
||||
nuevoproducto.Habilitado = checkBox1.Checked;
|
||||
nuevoproducto.Categoria = (Categoria)comboBox1.SelectedItem;
|
||||
|
||||
|
||||
// Agregar el producto usando la controladora
|
||||
string mensaje = ControladoraProductos.Instance.Añadir(nuevoproducto);
|
||||
string mensaje;
|
||||
if (_esModificacion)
|
||||
{
|
||||
mensaje = ControladoraProductos.Instance.Modificar(_producto);
|
||||
}
|
||||
else
|
||||
{
|
||||
_producto.Id = (int)numericUpDown1.Value;
|
||||
mensaje = ControladoraProductos.Instance.Añadir(_producto);
|
||||
}
|
||||
|
||||
MessageBox.Show(mensaje, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
Close();
|
||||
@@ -113,7 +161,6 @@ namespace Vista
|
||||
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Puedes usar este método para manejar cambios en el ComboBox si es necesario
|
||||
// No es necesario mantener una variable separada para la categoría seleccionada
|
||||
}
|
||||
|
||||
private void btnaddProveedor_Click(object sender, EventArgs e)
|
||||
@@ -125,19 +172,20 @@ namespace Vista
|
||||
foreach (DataGridViewRow selectedRow in dgvProveedor.SelectedRows)
|
||||
{
|
||||
Proveedor proveedor = (Proveedor)selectedRow.DataBoundItem;
|
||||
nuevoproducto.AñadirProveedor(proveedor);
|
||||
_producto.AñadirProveedor(proveedor);
|
||||
dgvProveedorAñadido.DataSource = null;
|
||||
dgvProveedorAñadido.DataSource = nuevoproducto.ListarProveedores();
|
||||
|
||||
dgvProveedorAñadido.DataSource = _producto.ListarProveedores();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Por favor, selecciona una fila para eliminar Proveedor del producto.");
|
||||
MessageBox.Show("Por favor, selecciona una fila para añadir Proveedor al producto.");
|
||||
}
|
||||
}
|
||||
catch (Exception) { throw; }
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Error al añadir proveedor: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnrmProveedor_Click(object sender, EventArgs e)
|
||||
@@ -146,12 +194,12 @@ namespace Vista
|
||||
{
|
||||
if (dgvProveedorAñadido.SelectedRows.Count > 0)
|
||||
{
|
||||
foreach (DataGridViewRow selectedRow in dgvProveedor.SelectedRows)
|
||||
foreach (DataGridViewRow selectedRow in dgvProveedorAñadido.SelectedRows)
|
||||
{
|
||||
Proveedor proveedor = (Proveedor)selectedRow.DataBoundItem;
|
||||
dgvProveedorAñadido.Rows.Remove(selectedRow);
|
||||
Proveedor proveedoreliminar = nuevoproducto.ListarProveedores().First(x => x.Cuit == proveedor.Cuit);
|
||||
nuevoproducto.EliminarProveedor(proveedoreliminar);
|
||||
Proveedor proveedoreliminar = _producto.ListarProveedores().FirstOrDefault(x => x.Cuit == proveedor.Cuit);
|
||||
_producto.EliminarProveedor(proveedoreliminar);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -159,7 +207,10 @@ namespace Vista
|
||||
MessageBox.Show("Por favor, selecciona una fila para eliminar Proveedor del producto.");
|
||||
}
|
||||
}
|
||||
catch (Exception) { throw; }
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Error al eliminar proveedor: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user