Files
Final_Das/Vista/FrmProducto.cs

166 lines
5.5 KiB
C#

using Controladora;
using Entidades;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace Vista
{
public partial class FrmProducto : Form
{
private Producto nuevoproducto = new Producto();
public FrmProducto()
{
InitializeComponent();
CargarCategorias();
CargarTabla();
}
private void CargarTabla()
{
dgvProveedor.DataSource = null;
dgvProveedor.DataSource = ControladoraProveedores.Instance.Listar();
}
private void CargarCategorias()
{
// Obtener la lista de categorías desde la controladora
var categorias = ControladoraCategorias.Instance.Listar();
// Configurar el ComboBox para categorías
comboBox1.DisplayMember = "Descripcion"; // Mostrar la propiedad Descripcion
comboBox1.ValueMember = "Id"; // Usar la propiedad Id como valor
// Asignar la lista de categorías al ComboBox
comboBox1.DataSource = categorias;
}
private bool ValidarDatos()
{
string devolucion = "";
// Validar Nombre
if (string.IsNullOrEmpty(textBox1.Text))
{
devolucion += "El nombre del producto no puede estar vacío.\n";
}
else if (textBox1.Text.Length > 100) // Limite de caracteres
{
devolucion += "El nombre del producto no puede superar los 100 caracteres.\n";
}
// Validar Precio
if (numericUpDown2.Value <= 0)
{
devolucion += "El precio debe ser mayor a cero.\n";
}
// Validar ID (Si es necesario)
if (ControladoraProductos.Instance.Listar().Any(p => p.Id == (int)numericUpDown1.Value))
{
devolucion += "Ya existe un producto con el mismo ID.\n";
}
// Validar Categoría Seleccionada
if (comboBox1.SelectedItem == null)
{
devolucion += "Debe seleccionar una categoría.\n";
}
if (devolucion == "")
{
return true;
}
else
{
MessageBox.Show(devolucion, "Errores de Validación", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
private void button1_Click(object sender, EventArgs e)
{
if (ValidarDatos())
{
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);
MessageBox.Show(mensaje, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
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)
{
try
{
if (dgvProveedor.SelectedRows.Count > 0)
{
foreach (DataGridViewRow selectedRow in dgvProveedor.SelectedRows)
{
Proveedor proveedor = (Proveedor)selectedRow.DataBoundItem;
nuevoproducto.AñadirProveedor(proveedor);
dgvProveedorAñadido.DataSource = null;
dgvProveedorAñadido.DataSource = nuevoproducto.ListarProveedores();
}
}
else
{
MessageBox.Show("Por favor, selecciona una fila para eliminar Proveedor del producto.");
}
}
catch (Exception) { throw; }
}
private void btnrmProveedor_Click(object sender, EventArgs e)
{
try
{
if (dgvProveedorAñadido.SelectedRows.Count > 0)
{
foreach (DataGridViewRow selectedRow in dgvProveedor.SelectedRows)
{
Proveedor proveedor = (Proveedor)selectedRow.DataBoundItem;
dgvProveedorAñadido.Rows.Remove(selectedRow);
Proveedor proveedoreliminar = nuevoproducto.ListarProveedores().First(x => x.Cuit == proveedor.Cuit);
nuevoproducto.EliminarProveedor(proveedoreliminar);
}
}
else
{
MessageBox.Show("Por favor, selecciona una fila para eliminar Proveedor del producto.");
}
}
catch (Exception) { throw; }
}
}
}