Files
Final_Das/Vista/Informes/FrmInformeFacturaPorFecha.cs
2024-12-02 22:53:04 +00:00

83 lines
2.7 KiB
C#

using Controladora;
using Entidades;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Vista.Informes
{
public partial class FrmInformeFacturaPorFecha : Form
{
private ReadOnlyCollection<Factura>? facturas;
public FrmInformeFacturaPorFecha()
{
InitializeComponent();
}
private void btnBuscar_Click(object sender, EventArgs e)
{
if (dateInicio.Value >= dateFin.Value)
{
MessageBox.Show("La fecha de inicio no puede ser mayor que la fecha final.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
facturas = ControladoraInformes.Instance.MostrarFacturasEnRangoDeFechas(dateInicio.Value, dateFin.Value);
if (facturas == null)
{
MessageBox.Show("No se encontraron facturas en el rango de fechas.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
RefrescarTablaFacturas(facturas);
}
private void RefrescarTablaFacturas(ReadOnlyCollection<Factura> list)
{
dgvDetalles.DataSource = null;
dgvFactura.DataSource = null;
dgvFactura.DataSource = list;
foreach (DataGridViewColumn column in dgvFactura.Columns)
{
column.Visible = column.Name == "Id" || column.Name == "Total" || column.Name == "Fecha" || column.Name == "NombreCliente";
}
}
private void dgvFactura_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvFactura.SelectedRows.Count <= 0)
{
MessageBox.Show("Falta seleccionar una linea");
return;
}
Factura? fac = (Factura)dgvFactura.SelectedRows[0].DataBoundItem;
fac = facturas.FirstOrDefault(x => x.Id == fac.Id);
if (fac == null)
{
MessageBox.Show("No se logro encontrar la factura");
return;
}
RefrescarTablaDetalles(fac.Detalles);
}
private void RefrescarTablaDetalles(List<DetalleFactura> list)
{
dgvDetalles.DataSource = null;
dgvDetalles.DataSource = list;
foreach (DataGridViewColumn column in dgvDetalles.Columns)
{
column.Visible = column.Name == "Subtotal" || column.Name == "NombreProducto" || column.Name == "Cantidad";
}
}
}
}