cambios nacho

This commit is contained in:
2024-08-11 18:24:34 -03:00
parent 3beec95408
commit b62fa7b021
52 changed files with 745 additions and 101 deletions

View File

@@ -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);
}
}
}
}