diff --git a/Entidades/DTO/DtoProductoInforme.cs b/Entidades/DTO/DtoProductoInforme.cs index a8414f7..aea54a6 100644 --- a/Entidades/DTO/DtoProductoInforme.cs +++ b/Entidades/DTO/DtoProductoInforme.cs @@ -1,10 +1,26 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Entidades.DTO { - public record DtoProductoInforme(int Id, string Nombre, int CantidadVendida, int StockRemanente); + public class DtoProductoInforme + { + public int Id { get; set; } + public string Nombre { get; set; } + public int CantidadVendida { get; set; } + public int StockRemanente { get; set; } + + public DtoProductoInforme(int Id, string Nombre, int CantidadVendida, int StockRemanente) + { + this.CantidadVendida = CantidadVendida; + this.Id = Id; + this.Nombre = Nombre; + this.StockRemanente = StockRemanente; + + } + } } diff --git a/Modelo/RepositorioFactura.cs b/Modelo/RepositorioFactura.cs index 30a6058..e9f2e67 100644 --- a/Modelo/RepositorioFactura.cs +++ b/Modelo/RepositorioFactura.cs @@ -89,7 +89,7 @@ namespace Modelo public List ObtenerInformeProductoMasUsados() { - List list + var list = context.DetalleFacturas .GroupBy(df => df.Producto) .Select(g => new DtoProductoInforme @@ -97,10 +97,17 @@ namespace Modelo g.Key.Id, g.Key.Nombre, g.Sum(df => df.Cantidad), - context.Lotes.Include(x => x.Producto).Where(x=>x.Id == g.Key.Id).Sum(x => x.Cantidad) + 0 )) - .ToList(); - return list; + .ToList() + .OrderByDescending(x => x.CantidadVendida); + foreach (var item in list) + { + item.StockRemanente = context.Lotes.Where(x => x.Producto.Id == item.Id).Sum(x => x.Cantidad); + } + + + return list.ToList(); } } } diff --git a/Vista/Informes/FrmInformeFacturaPorFecha.Designer.cs b/Vista/Informes/FrmInformeFacturaPorFecha.Designer.cs index 50a08ac..53e5f74 100644 --- a/Vista/Informes/FrmInformeFacturaPorFecha.Designer.cs +++ b/Vista/Informes/FrmInformeFacturaPorFecha.Designer.cs @@ -155,6 +155,7 @@ Controls.Add(btnBuscar); Name = "FrmInformeFacturaPorFecha"; Text = "Informe: Facturas"; + WindowState = FormWindowState.Maximized; ((System.ComponentModel.ISupportInitialize)dgvFactura).EndInit(); ((System.ComponentModel.ISupportInitialize)dgvDetalles).EndInit(); ResumeLayout(false); diff --git a/Vista/Informes/FrmInformeFacturasPorCliente.Designer.cs b/Vista/Informes/FrmInformeFacturasPorCliente.Designer.cs index 9ee01a9..a5942b9 100644 --- a/Vista/Informes/FrmInformeFacturasPorCliente.Designer.cs +++ b/Vista/Informes/FrmInformeFacturasPorCliente.Designer.cs @@ -183,6 +183,7 @@ Controls.Add(btnBusqueda); Name = "FrmInformeFacturasPorCliente"; Text = "Informe: Clientes"; + WindowState = FormWindowState.Maximized; ((System.ComponentModel.ISupportInitialize)dgvDetalle).EndInit(); ((System.ComponentModel.ISupportInitialize)dgvFactura).EndInit(); ((System.ComponentModel.ISupportInitialize)dgvCliente).EndInit(); diff --git a/Vista/Informes/FrmInformeProductosMasVendidos.Designer.cs b/Vista/Informes/FrmInformeProductosMasVendidos.Designer.cs index 7a897ae..fa5415b 100644 --- a/Vista/Informes/FrmInformeProductosMasVendidos.Designer.cs +++ b/Vista/Informes/FrmInformeProductosMasVendidos.Designer.cs @@ -30,6 +30,8 @@ { dgvProductos = new DataGridView(); label1 = new Label(); + textBox1 = new TextBox(); + label2 = new Label(); ((System.ComponentModel.ISupportInitialize)dgvProductos).BeginInit(); SuspendLayout(); // @@ -37,6 +39,8 @@ // dgvProductos.AllowUserToAddRows = false; dgvProductos.AllowUserToDeleteRows = false; + dgvProductos.AllowUserToResizeColumns = false; + dgvProductos.AllowUserToResizeRows = false; dgvProductos.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dgvProductos.EditMode = DataGridViewEditMode.EditProgrammatically; dgvProductos.Location = new Point(12, 28); @@ -56,15 +60,37 @@ label1.TabIndex = 5; label1.Text = "Productos Más Vendidos"; // + // textBox1 + // + textBox1.Enabled = false; + textBox1.Location = new Point(773, 28); + textBox1.Multiline = true; + textBox1.Name = "textBox1"; + textBox1.Size = new Size(194, 59); + textBox1.TabIndex = 7; + textBox1.Text = "Se muestra en orden los productos más vendidos a los menos vendidos"; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(773, 9); + label2.Name = "label2"; + label2.Size = new Size(51, 15); + label2.TabIndex = 8; + label2.Text = "Leyenda"; + // // FrmInformeProductosMasVendidos // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(780, 509); + ClientSize = new Size(1137, 509); + Controls.Add(label2); + Controls.Add(textBox1); Controls.Add(label1); Controls.Add(dgvProductos); Name = "FrmInformeProductosMasVendidos"; Text = "Informe: Productos"; + WindowState = FormWindowState.Maximized; ((System.ComponentModel.ISupportInitialize)dgvProductos).EndInit(); ResumeLayout(false); PerformLayout(); @@ -74,5 +100,7 @@ private DataGridView dgvProductos; private Label label1; + private TextBox textBox1; + private Label label2; } } \ No newline at end of file diff --git a/Vista/Informes/FrmInformeProductosMasVendidos.cs b/Vista/Informes/FrmInformeProductosMasVendidos.cs index e1d1615..2aaf1df 100644 --- a/Vista/Informes/FrmInformeProductosMasVendidos.cs +++ b/Vista/Informes/FrmInformeProductosMasVendidos.cs @@ -1,4 +1,5 @@ -using System; +using Controladora; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -15,6 +16,12 @@ namespace Vista.Informes public FrmInformeProductosMasVendidos() { InitializeComponent(); + IniciarTabla(); + } + + private void IniciarTabla() + { + dgvProductos.DataSource = ControladoraInformes.Instance.MostrarProductosMasVendidos(); } } } diff --git a/Vista/PantallaPrincipal.Designer.cs b/Vista/PantallaPrincipal.Designer.cs index 7438dab..b5b8d07 100644 --- a/Vista/PantallaPrincipal.Designer.cs +++ b/Vista/PantallaPrincipal.Designer.cs @@ -38,12 +38,12 @@ ordenDeCompraToolStripMenuItem = new ToolStripMenuItem(); pedidosPresupuestoToolStripMenuItem = new ToolStripMenuItem(); categoriasToolStripMenuItem = new ToolStripMenuItem(); - configToolStripMenuItem = new ToolStripMenuItem(); - informesToolStripMenuItem = new ToolStripMenuItem(); informesToolStrip = new ToolStripMenuItem(); facturasPorFechaToolStripMenuItem = new ToolStripMenuItem(); facturasPorClienteToolStripMenuItem = new ToolStripMenuItem(); productoMasVendidoToolStripMenuItem = new ToolStripMenuItem(); + configToolStripMenuItem = new ToolStripMenuItem(); + informesToolStripMenuItem = new ToolStripMenuItem(); menuStrip1.SuspendLayout(); SuspendLayout(); // @@ -67,73 +67,59 @@ // clientesToolStripMenuItem // clientesToolStripMenuItem.Name = "clientesToolStripMenuItem"; - clientesToolStripMenuItem.Size = new Size(180, 22); + clientesToolStripMenuItem.Size = new Size(164, 22); clientesToolStripMenuItem.Text = "Clientes"; clientesToolStripMenuItem.Click += clientesToolStripMenuItem_Click; // // ventasToolStripMenuItem // ventasToolStripMenuItem.Name = "ventasToolStripMenuItem"; - ventasToolStripMenuItem.Size = new Size(180, 22); + ventasToolStripMenuItem.Size = new Size(164, 22); ventasToolStripMenuItem.Text = "Ventas"; ventasToolStripMenuItem.Click += ventasToolStripMenuItem_Click; // // proveedoresToolStripMenuItem // proveedoresToolStripMenuItem.Name = "proveedoresToolStripMenuItem"; - proveedoresToolStripMenuItem.Size = new Size(180, 22); + proveedoresToolStripMenuItem.Size = new Size(164, 22); proveedoresToolStripMenuItem.Text = "Proveedores"; proveedoresToolStripMenuItem.Click += proveedoresToolStripMenuItem_Click; // // productosToolStripMenuItem // productosToolStripMenuItem.Name = "productosToolStripMenuItem"; - productosToolStripMenuItem.Size = new Size(180, 22); + productosToolStripMenuItem.Size = new Size(164, 22); productosToolStripMenuItem.Text = "Productos"; productosToolStripMenuItem.Click += productosToolStripMenuItem_Click; // // remitosToolStripMenuItem // remitosToolStripMenuItem.Name = "remitosToolStripMenuItem"; - remitosToolStripMenuItem.Size = new Size(180, 22); + remitosToolStripMenuItem.Size = new Size(164, 22); remitosToolStripMenuItem.Text = "Remitos"; remitosToolStripMenuItem.Click += remitosToolStripMenuItem_Click; // // ordenDeCompraToolStripMenuItem // ordenDeCompraToolStripMenuItem.Name = "ordenDeCompraToolStripMenuItem"; - ordenDeCompraToolStripMenuItem.Size = new Size(180, 22); + ordenDeCompraToolStripMenuItem.Size = new Size(164, 22); ordenDeCompraToolStripMenuItem.Text = "OrdenDeCompra"; ordenDeCompraToolStripMenuItem.Click += ordenDeCompraToolStripMenuItem_Click; // // pedidosPresupuestoToolStripMenuItem // pedidosPresupuestoToolStripMenuItem.Name = "pedidosPresupuestoToolStripMenuItem"; - pedidosPresupuestoToolStripMenuItem.Size = new Size(180, 22); + pedidosPresupuestoToolStripMenuItem.Size = new Size(164, 22); pedidosPresupuestoToolStripMenuItem.Text = "Presupuesto"; pedidosPresupuestoToolStripMenuItem.Click += pedidosPresupuestoToolStripMenuItem_Click; // // categoriasToolStripMenuItem // categoriasToolStripMenuItem.Name = "categoriasToolStripMenuItem"; - categoriasToolStripMenuItem.Size = new Size(180, 22); + categoriasToolStripMenuItem.Size = new Size(164, 22); categoriasToolStripMenuItem.Text = "Categorias"; categoriasToolStripMenuItem.Click += categoriasToolStripMenuItem_Click; // - // configToolStripMenuItem - // - configToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { informesToolStripMenuItem }); - configToolStripMenuItem.Name = "configToolStripMenuItem"; - configToolStripMenuItem.Size = new Size(55, 20); - configToolStripMenuItem.Text = "Config"; - // - // informesToolStripMenuItem - // - informesToolStripMenuItem.Name = "informesToolStripMenuItem"; - informesToolStripMenuItem.Size = new Size(180, 22); - informesToolStripMenuItem.Text = "Informes"; - informesToolStripMenuItem.Click += informesToolStripMenuItem_Click; - // // informesToolStrip // informesToolStrip.DropDownItems.AddRange(new ToolStripItem[] { facturasPorFechaToolStripMenuItem, facturasPorClienteToolStripMenuItem, productoMasVendidoToolStripMenuItem }); @@ -153,12 +139,28 @@ facturasPorClienteToolStripMenuItem.Name = "facturasPorClienteToolStripMenuItem"; facturasPorClienteToolStripMenuItem.Size = new Size(194, 22); facturasPorClienteToolStripMenuItem.Text = "Facturas Por Cliente"; + facturasPorClienteToolStripMenuItem.Click += facturasPorClienteToolStripMenuItem_Click; // // productoMasVendidoToolStripMenuItem // productoMasVendidoToolStripMenuItem.Name = "productoMasVendidoToolStripMenuItem"; productoMasVendidoToolStripMenuItem.Size = new Size(194, 22); productoMasVendidoToolStripMenuItem.Text = "Producto Mas Vendido"; + productoMasVendidoToolStripMenuItem.Click += productoMasVendidoToolStripMenuItem_Click; + // + // configToolStripMenuItem + // + configToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { informesToolStripMenuItem }); + configToolStripMenuItem.Name = "configToolStripMenuItem"; + configToolStripMenuItem.Size = new Size(55, 20); + configToolStripMenuItem.Text = "Config"; + // + // informesToolStripMenuItem + // + informesToolStripMenuItem.Name = "informesToolStripMenuItem"; + informesToolStripMenuItem.Size = new Size(121, 22); + informesToolStripMenuItem.Text = "Informes"; + informesToolStripMenuItem.Click += informesToolStripMenuItem_Click; // // PantallaPrincipal // diff --git a/Vista/PantallaPrincipal.cs b/Vista/PantallaPrincipal.cs index 83b1e8e..9766423 100644 --- a/Vista/PantallaPrincipal.cs +++ b/Vista/PantallaPrincipal.cs @@ -1,3 +1,5 @@ +using Vista.Informes; + namespace Vista { public partial class PantallaPrincipal : Form @@ -119,7 +121,29 @@ namespace Vista { ActiveMdiChild.Close(); } - var Frm = new FrmCategorias(); + var Frm = new FrmInformeFacturaPorFecha(); + Frm.MdiParent = this; + Frm.Show(); + } + + private void productoMasVendidoToolStripMenuItem_Click(object sender, EventArgs e) + { + if (ActiveMdiChild != null) + { + ActiveMdiChild.Close(); + } + var Frm = new FrmInformeProductosMasVendidos(); + Frm.MdiParent = this; + Frm.Show(); + } + + private void facturasPorClienteToolStripMenuItem_Click(object sender, EventArgs e) + { + if (ActiveMdiChild != null) + { + ActiveMdiChild.Close(); + } + var Frm = new FrmInformeFacturasPorCliente(); Frm.MdiParent = this; Frm.Show(); }