cambios para añadir proveedores en form de productos + proveedores y resuelto un bug en form proveedores

This commit is contained in:
fedpo
2024-08-05 00:01:17 +01:00
parent fa75f93a7a
commit 90affbb581
21 changed files with 280 additions and 70 deletions

View File

@@ -40,8 +40,16 @@
comboBox1 = new ComboBox();
btnacept = new Button();
btncancel = new Button();
label6 = new Label();
label7 = new Label();
dgvProveedorAñadido = new DataGridView();
dgvProveedor = new DataGridView();
btnaddProveedor = new Button();
btnrmProveedor = new Button();
((System.ComponentModel.ISupportInitialize)numericUpDown1).BeginInit();
((System.ComponentModel.ISupportInitialize)numericUpDown2).BeginInit();
((System.ComponentModel.ISupportInitialize)dgvProveedorAñadido).BeginInit();
((System.ComponentModel.ISupportInitialize)dgvProveedor).BeginInit();
SuspendLayout();
//
// label1
@@ -151,13 +159,80 @@
btncancel.UseVisualStyleBackColor = true;
btncancel.Click += button2_Click;
//
// label6
//
label6.AutoSize = true;
label6.Location = new Point(230, 12);
label6.Name = "label6";
label6.Size = new Size(123, 15);
label6.TabIndex = 12;
label6.Text = "Proveedores añadidos";
//
// label7
//
label7.AutoSize = true;
label7.Location = new Point(494, 9);
label7.Name = "label7";
label7.Size = new Size(72, 15);
label7.TabIndex = 13;
label7.Text = "Proveedores";
//
// dgvProveedorAñadido
//
dgvProveedorAñadido.AllowUserToAddRows = false;
dgvProveedorAñadido.AllowUserToDeleteRows = false;
dgvProveedorAñadido.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgvProveedorAñadido.EditMode = DataGridViewEditMode.EditProgrammatically;
dgvProveedorAñadido.Location = new Point(230, 30);
dgvProveedorAñadido.Name = "dgvProveedorAñadido";
dgvProveedorAñadido.RowTemplate.Height = 25;
dgvProveedorAñadido.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgvProveedorAñadido.Size = new Size(240, 150);
dgvProveedorAñadido.TabIndex = 14;
//
// dgvProveedor
//
dgvProveedor.AllowUserToAddRows = false;
dgvProveedor.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgvProveedor.Location = new Point(494, 30);
dgvProveedor.Name = "dgvProveedor";
dgvProveedor.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgvProveedor.Size = new Size(240, 150);
dgvProveedor.TabIndex = 15;
//
// btnaddProveedor
//
btnaddProveedor.Location = new Point(740, 30);
btnaddProveedor.Name = "btnaddProveedor";
btnaddProveedor.Size = new Size(72, 21);
btnaddProveedor.TabIndex = 16;
btnaddProveedor.Text = "Añadir";
btnaddProveedor.UseVisualStyleBackColor = true;
btnaddProveedor.Click += btnaddProveedor_Click;
//
// btnrmProveedor
//
btnrmProveedor.Location = new Point(740, 57);
btnrmProveedor.Name = "btnrmProveedor";
btnrmProveedor.Size = new Size(72, 21);
btnrmProveedor.TabIndex = 17;
btnrmProveedor.Text = "Eliminar";
btnrmProveedor.UseVisualStyleBackColor = true;
btnrmProveedor.Click += btnrmProveedor_Click;
//
// FrmProducto
//
AcceptButton = btnacept;
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
CancelButton = btncancel;
ClientSize = new Size(210, 228);
ClientSize = new Size(877, 228);
Controls.Add(btnrmProveedor);
Controls.Add(btnaddProveedor);
Controls.Add(dgvProveedor);
Controls.Add(dgvProveedorAñadido);
Controls.Add(label7);
Controls.Add(label6);
Controls.Add(btncancel);
Controls.Add(btnacept);
Controls.Add(comboBox1);
@@ -174,6 +249,8 @@
Text = "Producto";
((System.ComponentModel.ISupportInitialize)numericUpDown1).EndInit();
((System.ComponentModel.ISupportInitialize)numericUpDown2).EndInit();
((System.ComponentModel.ISupportInitialize)dgvProveedorAñadido).EndInit();
((System.ComponentModel.ISupportInitialize)dgvProveedor).EndInit();
ResumeLayout(false);
PerformLayout();
}
@@ -192,5 +269,11 @@
private ComboBox comboBox1;
private Button btnacept;
private Button btncancel;
private Label label6;
private Label label7;
private DataGridView dgvProveedorAñadido;
private DataGridView dgvProveedor;
private Button btnaddProveedor;
private Button btnrmProveedor;
}
}

View File

@@ -15,12 +15,20 @@ 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
@@ -81,18 +89,16 @@ namespace Vista
{
if (ValidarDatos())
{
// Crear nuevo producto
var nuevoProducto = new Producto
{
Id = (int)numericUpDown1.Value,
Nombre = textBox1.Text,
Precio = (double)numericUpDown2.Value,
Habilitado = checkBox1.Checked,
Categoria = (Categoria)comboBox1.SelectedItem, // Asignar categoría seleccionada
};
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 = ControladoraProductos.Instance.Añadir(nuevoproducto);
MessageBox.Show(mensaje, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
Close();
@@ -109,5 +115,51 @@ namespace Vista
// 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; }
}
}
}

View File

@@ -29,30 +29,53 @@
private void InitializeComponent()
{
groupBox1 = new GroupBox();
label3 = new Label();
dgvProveedores = new DataGridView();
label2 = new Label();
dataGridView1 = new DataGridView();
dgvProductos = new DataGridView();
BtnAdd = new Button();
BtnEliminar = new Button();
button1 = new Button();
dataGridView2 = new DataGridView();
dgvCategorias = new DataGridView();
label1 = new Label();
groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit();
((System.ComponentModel.ISupportInitialize)dataGridView2).BeginInit();
((System.ComponentModel.ISupportInitialize)dgvProveedores).BeginInit();
((System.ComponentModel.ISupportInitialize)dgvProductos).BeginInit();
((System.ComponentModel.ISupportInitialize)dgvCategorias).BeginInit();
SuspendLayout();
//
// groupBox1
//
groupBox1.Controls.Add(label3);
groupBox1.Controls.Add(dgvProveedores);
groupBox1.Controls.Add(label2);
groupBox1.Controls.Add(dataGridView1);
groupBox1.Controls.Add(dgvProductos);
groupBox1.Controls.Add(BtnAdd);
groupBox1.Controls.Add(BtnEliminar);
groupBox1.Location = new Point(12, 0);
groupBox1.Name = "groupBox1";
groupBox1.Size = new Size(776, 351);
groupBox1.Size = new Size(746, 305);
groupBox1.TabIndex = 5;
groupBox1.TabStop = false;
//
// label3
//
label3.AutoSize = true;
label3.Location = new Point(473, 9);
label3.Name = "label3";
label3.Size = new Size(72, 15);
label3.TabIndex = 10;
label3.Text = "Proveedores";
//
// dgvProveedores
//
dgvProveedores.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgvProveedores.Location = new Point(473, 22);
dgvProveedores.Name = "dgvProveedores";
dgvProveedores.RowTemplate.Height = 25;
dgvProveedores.Size = new Size(240, 235);
dgvProveedores.TabIndex = 9;
//
// label2
//
label2.AutoSize = true;
@@ -62,21 +85,22 @@
label2.TabIndex = 8;
label2.Text = "Productos";
//
// dataGridView1
// dgvProductos
//
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
dataGridView1.Location = new Point(6, 22);
dataGridView1.Name = "dataGridView1";
dataGridView1.RowTemplate.Height = 25;
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.Size = new Size(690, 235);
dataGridView1.TabIndex = 3;
dgvProductos.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dgvProductos.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgvProductos.EditMode = DataGridViewEditMode.EditProgrammatically;
dgvProductos.Location = new Point(6, 22);
dgvProductos.Name = "dgvProductos";
dgvProductos.RowTemplate.Height = 25;
dgvProductos.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgvProductos.Size = new Size(461, 235);
dgvProductos.TabIndex = 3;
dgvProductos.CellClick += dgvProductos_CellClick;
//
// BtnAdd
//
BtnAdd.Location = new Point(6, 302);
BtnAdd.Location = new Point(6, 263);
BtnAdd.Name = "BtnAdd";
BtnAdd.Size = new Size(75, 23);
BtnAdd.TabIndex = 0;
@@ -86,7 +110,7 @@
//
// BtnEliminar
//
BtnEliminar.Location = new Point(137, 302);
BtnEliminar.Location = new Point(87, 263);
BtnEliminar.Name = "BtnEliminar";
BtnEliminar.Size = new Size(75, 23);
BtnEliminar.TabIndex = 2;
@@ -96,7 +120,7 @@
//
// button1
//
button1.Location = new Point(794, 302);
button1.Location = new Point(794, 263);
button1.Name = "button1";
button1.Size = new Size(128, 23);
button1.TabIndex = 4;
@@ -104,17 +128,17 @@
button1.UseVisualStyleBackColor = true;
button1.Click += button1_Click;
//
// dataGridView2
// dgvCategorias
//
dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView2.EditMode = DataGridViewEditMode.EditProgrammatically;
dataGridView2.Location = new Point(794, 22);
dataGridView2.Name = "dataGridView2";
dataGridView2.RowTemplate.Height = 25;
dataGridView2.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView2.Size = new Size(250, 235);
dataGridView2.TabIndex = 6;
dgvCategorias.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dgvCategorias.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgvCategorias.EditMode = DataGridViewEditMode.EditProgrammatically;
dgvCategorias.Location = new Point(794, 22);
dgvCategorias.Name = "dgvCategorias";
dgvCategorias.RowTemplate.Height = 25;
dgvCategorias.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgvCategorias.Size = new Size(250, 235);
dgvCategorias.TabIndex = 6;
//
// label1
//
@@ -129,18 +153,19 @@
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1071, 450);
ClientSize = new Size(1088, 515);
Controls.Add(label1);
Controls.Add(button1);
Controls.Add(dataGridView2);
Controls.Add(dgvCategorias);
Controls.Add(groupBox1);
Name = "FrmProductos";
Text = "Productos";
WindowState = FormWindowState.Maximized;
groupBox1.ResumeLayout(false);
groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit();
((System.ComponentModel.ISupportInitialize)dataGridView2).EndInit();
((System.ComponentModel.ISupportInitialize)dgvProveedores).EndInit();
((System.ComponentModel.ISupportInitialize)dgvProductos).EndInit();
((System.ComponentModel.ISupportInitialize)dgvCategorias).EndInit();
ResumeLayout(false);
PerformLayout();
}
@@ -148,12 +173,14 @@
#endregion
private GroupBox groupBox1;
private DataGridView dataGridView1;
private DataGridView dgvProductos;
private Button BtnAdd;
private Button BtnEliminar;
private Button button1;
private DataGridView dataGridView2;
private DataGridView dgvCategorias;
private Label label2;
private Label label1;
private DataGridView dgvProveedores;
private Label label3;
}
}

View File

@@ -28,14 +28,14 @@ namespace Vista
private void ConfigurarDataGridView()
{
dataGridView1.AutoGenerateColumns = false;
dgvProductos.AutoGenerateColumns = false;
// Crear una columna para el ID
var colId = new DataGridViewTextBoxColumn
{
DataPropertyName = "Id",
HeaderText = "ID",
Name = "colId"
Name = "Id"
};
// Crear una columna para el nombre
@@ -43,7 +43,7 @@ namespace Vista
{
DataPropertyName = "Nombre",
HeaderText = "Nombre",
Name = "colNombre"
Name = "Nombre"
};
// Crear una columna para el precio
@@ -51,36 +51,45 @@ namespace Vista
{
DataPropertyName = "Precio",
HeaderText = "Precio",
Name = "colPrecio"
Name = "Precio"
};
var colHabilitado = new DataGridViewTextBoxColumn
{
DataPropertyName = "Habilitado",
HeaderText = "Habilitado",
Name = "colHabilitado"
Name = "Habilitado"
};
// Crear una columna para la categoría (mostrando la descripción)
var colCategoria = new DataGridViewTextBoxColumn
{
DataPropertyName = "CategoriaDescripcion",
HeaderText = "Categoría",
Name = "colCategoria"
Name = "Categoria"
};
// Agregar las columnas al DataGridView
dataGridView1.Columns.Add(colId);
dataGridView1.Columns.Add(colNombre);
dataGridView1.Columns.Add(colPrecio);
dataGridView1.Columns.Add(colHabilitado);
dataGridView1.Columns.Add(colCategoria);
dgvProductos.Columns.Add(colId);
dgvProductos.Columns.Add(colNombre);
dgvProductos.Columns.Add(colPrecio);
dgvProductos.Columns.Add(colHabilitado);
dgvProductos.Columns.Add(colCategoria);
}
private void ActualizarGrilla()
{
dataGridView1.DataSource = null;
dataGridView2.DataSource = null;
dgvProductos.DataSource = null;
dgvCategorias.DataSource = null;
var categorias = ControladoraCategorias.Instance.Listar();
dataGridView2.DataSource = categorias;
dgvCategorias.DataSource = categorias;
if (dgvProductos.SelectedRows.Count > 0)
{
Producto producto = new Producto
{
Id = int.Parse(dgvProductos.SelectedRows[0].Cells["Id"].Value.ToString()),
};
dgvProveedores.DataSource = ControladoraProductos.Instance.ListarProveedores(producto);
}
// Obtener la lista de productos y proyectar los datos
var productos = ControladoraProductos.Instance.Listar()
@@ -94,7 +103,7 @@ namespace Vista
})
.ToList();
dataGridView1.DataSource = productos;
dgvProductos.DataSource = productos;
}
private void BtnAdd_Click(object sender, EventArgs e)
@@ -115,14 +124,14 @@ namespace Vista
private void BtnEliminar_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0)
if (dgvProductos.SelectedRows.Count == 0)
{
MessageBox.Show("Seleccione una línea para eliminar");
return;
}
// Recorre las filas seleccionadas
foreach (DataGridViewRow fila in dataGridView1.SelectedRows)
foreach (DataGridViewRow fila in dgvProductos.SelectedRows)
{
try
{
@@ -154,7 +163,19 @@ namespace Vista
}
private void dgvProductos_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvProductos.SelectedRows.Count == 0) return;
if (dgvProductos.SelectedRows.Count > 0)
{
Producto producto = new Producto
{
Id = Convert.ToInt32(dgvProductos.SelectedRows[0].Cells["Id"].Value.ToString()),
};
dgvProveedores.DataSource = ControladoraProductos.Instance.ListarProveedores(producto);
}
}
}
}

View File

@@ -85,6 +85,7 @@ namespace Vista
proveedor.Direccion = txtDireccion.Text;
proveedor.RazonSocial = txtSocial.Text;
proveedor.Cuit = (Int64)numCuit.Value;
proveedor.Habilitado = checkBoxHabilitado.Checked;
msg = ControladoraProveedores.Instance.Modificar(proveedor);
}
MessageBox.Show(msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);

View File

@@ -20,16 +20,16 @@ namespace Vista
private static void PrecargarDatos()
{
ControladoraProveedores.Instance.A<EFBFBD>adir(new Proveedor
Proveedor proveedor = new Proveedor
{
Cuit = 157618923,
Direccion = "La Rioja 6412",
Nombre = "Outlet Riojano",
Habilitado = true,
RazonSocial = "Vende Ropa"
});
};
ControladoraProveedores.Instance.A<EFBFBD>adir(proveedor);
ControladoraClientes.Instance.A<EFBFBD>adir(new Cliente{
Cuit = 23453659239,
@@ -59,15 +59,17 @@ namespace Vista
Id = 2,
Descripcion = "Perfumeria"
});
ControladoraProductos.Instance.A<EFBFBD>adir(new Producto
Producto producto = new Producto
{
Id = 1,
Categoria = ControladoraCategorias.Instance.Listar()[0],
Habilitado = true,
Nombre = "Pantalones Vaqueros",
Precio = 2000.2
});
};
producto.A<EFBFBD>adirProveedor(proveedor);
ControladoraProductos.Instance.A<EFBFBD>adir(producto);
}
}
}