This repository has been archived on 2024-08-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Final_OOP/Vista/FrmFacturas.cs
2024-08-04 21:38:55 +01:00

90 lines
2.8 KiB
C#

using Controladora;
using Entidades;
using System.Collections.ObjectModel;
namespace Vista
{
public partial class FrmFacturas : Form
{
public FrmFacturas()
{
InitializeComponent();
ActualizarGrilla();
dataGridView1.CellClick += dataGridView1_CellClick;
ConfigurarDataGridView2();
}
private void ActualizarGrilla()
{
dataGridView1.DataSource = null;
dataGridView1.DataSource = ControladoraFacturas.Instance.Listar();
}
private void BtnAdd_Click(object sender, EventArgs e)
{
var form = new FrmFactura();
form.ShowDialog();
ActualizarGrilla();
}
private void dataGridView1_CellBorderStyleChanged(object sender, EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void ConfigurarDataGridView2()
{
dataGridView2.AutoGenerateColumns = false;
dataGridView2.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Producto",
HeaderText = "Producto"
});
dataGridView2.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Cantidad",
HeaderText = "Cantidad"
});
dataGridView2.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "PrecioUnitario",
HeaderText = "PrecioUnitariod"
});
dataGridView2.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Subtotal",
HeaderText = "Subtotal"
});
}
private void ActualizarGrillaLotes(ReadOnlyCollection<Lote> lotes)
{
dataGridView2.DataSource = null;
if (lotes.Any())
{
var loteDatos = lotes.Select(lote => new
{
Producto = lote.NombreProducto,
Cantidad = lote.CantidadDeProductos,
Subtotal = lote.Subtotal,
PrecioUnitario = lote.PrecioUnitario,
}).ToList();
dataGridView2.DataSource = loteDatos;
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
var selectedFactura = (Factura)dataGridView1.Rows[e.RowIndex].DataBoundItem;
var lotes = ControladoraLotes.Instance.ListarPorFacturaId(selectedFactura.Id);
ActualizarGrillaLotes(lotes);
}
}
}
}