Añadida Funcionalidad Informes

This commit is contained in:
fedpo
2024-12-02 16:17:41 +00:00
parent 2cb2fe1401
commit 53272a5491
4 changed files with 119 additions and 13 deletions

View File

@@ -1,5 +1,8 @@
using Entidades;
using Entidades.DTO;
using Informes;
using Microsoft.EntityFrameworkCore.Metadata.Conventions;
using Modelo;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,6 +16,30 @@ namespace Controladora
{
const string configpath = "settings.json";
private RepositorioFactura repositorioFactura = new(new Context());
public List<Factura>? MostrarFacturasEnRangoDeFechas(DateTime FechaInicio, DateTime FechaFinal)
{
if (FechaFinal < FechaInicio) return null;
List<Factura> list = repositorioFactura.ObtenerFacturasEnRangoFechas(FechaInicio, FechaFinal);
return list;
}
public List<Factura>? MostrarFacturasDeClienteEnRangoDeFechas(Cliente cli, DateTime fecInicio, DateTime fecFin)
{
if (fecFin < fecInicio) return null;
if (cli.Cuit <= 0) return null;
List<Factura> list = repositorioFactura.ObtenerFacturasDeClienteEnRangoFechas(cli, fecInicio, fecFin);
return list;
}
public List<DtoProductoInforme>? MostrarProductosMasVendidos()
{
return repositorioFactura.ObtenerInformeProductoMasUsados();
}
public void GuardarConfig(ConfigEmail config)
{
try

View File

@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Entidades.DTO
{
public record DtoProductoInforme(int Id, string Nombre, int CantidadVendida, int StockRemanente);
}

View File

@@ -1,5 +1,6 @@
using System.Collections.ObjectModel;
using Entidades;
using Entidades.DTO;
using Microsoft.EntityFrameworkCore;
namespace Modelo
@@ -66,5 +67,40 @@ namespace Modelo
.FirstOrDefault(x => x.Id == fac.Id);
return factura;
}
public List<Factura> ObtenerFacturasDeClienteEnRangoFechas(Cliente cli, DateTime fecInicio, DateTime fecFin)
{
return context.Facturas
.AsNoTracking()
.Include(x => x.Detalles)
.Include(x => x.Cliente)
.Where(x => x.Fecha > fecInicio && x.Fecha < fecFin && x.Cliente.Cuit == cli.Cuit)
.ToList();
}
public List<Factura> ObtenerFacturasEnRangoFechas(DateTime fecInicio, DateTime fecFinal)
{
return context.Facturas
.AsNoTracking()
.Include(x => x.Detalles)
.Where(x => (x.Fecha > fecInicio && x.Fecha < fecFinal))
.ToList();
}
public List<DtoProductoInforme> ObtenerInformeProductoMasUsados()
{
List<DtoProductoInforme> list
= context.DetalleFacturas
.GroupBy(df => df.Producto)
.Select(g => new DtoProductoInforme
(
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)
))
.ToList();
return list;
}
}
}

View File

@@ -37,15 +37,19 @@
remitosToolStripMenuItem = new ToolStripMenuItem();
ordenDeCompraToolStripMenuItem = new ToolStripMenuItem();
pedidosPresupuestoToolStripMenuItem = new ToolStripMenuItem();
categoriasToolStripMenuItem = new ToolStripMenuItem();
configToolStripMenuItem = new ToolStripMenuItem();
informesToolStripMenuItem = new ToolStripMenuItem();
categoriasToolStripMenuItem = new ToolStripMenuItem();
informesToolStrip = new ToolStripMenuItem();
facturasPorFechaToolStripMenuItem = new ToolStripMenuItem();
facturasPorClienteToolStripMenuItem = new ToolStripMenuItem();
productoMasVendidoToolStripMenuItem = new ToolStripMenuItem();
menuStrip1.SuspendLayout();
SuspendLayout();
//
// menuStrip1
//
menuStrip1.Items.AddRange(new ToolStripItem[] { gestionarToolStripMenuItem, configToolStripMenuItem });
menuStrip1.Items.AddRange(new ToolStripItem[] { gestionarToolStripMenuItem, informesToolStrip, configToolStripMenuItem });
menuStrip1.Location = new Point(0, 0);
menuStrip1.Name = "menuStrip1";
menuStrip1.Size = new Size(800, 24);
@@ -109,6 +113,13 @@
pedidosPresupuestoToolStripMenuItem.Text = "Presupuesto";
pedidosPresupuestoToolStripMenuItem.Click += pedidosPresupuestoToolStripMenuItem_Click;
//
// categoriasToolStripMenuItem
//
categoriasToolStripMenuItem.Name = "categoriasToolStripMenuItem";
categoriasToolStripMenuItem.Size = new Size(180, 22);
categoriasToolStripMenuItem.Text = "Categorias";
categoriasToolStripMenuItem.Click += categoriasToolStripMenuItem_Click;
//
// configToolStripMenuItem
//
configToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { informesToolStripMenuItem });
@@ -119,16 +130,34 @@
// informesToolStripMenuItem
//
informesToolStripMenuItem.Name = "informesToolStripMenuItem";
informesToolStripMenuItem.Size = new Size(121, 22);
informesToolStripMenuItem.Size = new Size(180, 22);
informesToolStripMenuItem.Text = "Informes";
informesToolStripMenuItem.Click += informesToolStripMenuItem_Click;
//
// categoriasToolStripMenuItem
// informesToolStrip
//
categoriasToolStripMenuItem.Name = "categoriasToolStripMenuItem";
categoriasToolStripMenuItem.Size = new Size(180, 22);
categoriasToolStripMenuItem.Text = "Categorias";
categoriasToolStripMenuItem.Click += categoriasToolStripMenuItem_Click;
informesToolStrip.DropDownItems.AddRange(new ToolStripItem[] { facturasPorFechaToolStripMenuItem, facturasPorClienteToolStripMenuItem, productoMasVendidoToolStripMenuItem });
informesToolStrip.Name = "informesToolStrip";
informesToolStrip.Size = new Size(66, 20);
informesToolStrip.Text = "Informes";
//
// facturasPorFechaToolStripMenuItem
//
facturasPorFechaToolStripMenuItem.Name = "facturasPorFechaToolStripMenuItem";
facturasPorFechaToolStripMenuItem.Size = new Size(194, 22);
facturasPorFechaToolStripMenuItem.Text = "Facturas Por Fecha";
//
// facturasPorClienteToolStripMenuItem
//
facturasPorClienteToolStripMenuItem.Name = "facturasPorClienteToolStripMenuItem";
facturasPorClienteToolStripMenuItem.Size = new Size(194, 22);
facturasPorClienteToolStripMenuItem.Text = "Facturas Por Cliente";
//
// productoMasVendidoToolStripMenuItem
//
productoMasVendidoToolStripMenuItem.Name = "productoMasVendidoToolStripMenuItem";
productoMasVendidoToolStripMenuItem.Size = new Size(194, 22);
productoMasVendidoToolStripMenuItem.Text = "Producto Mas Vendido";
//
// PantallaPrincipal
//
@@ -161,5 +190,9 @@
private ToolStripMenuItem configToolStripMenuItem;
private ToolStripMenuItem informesToolStripMenuItem;
private ToolStripMenuItem categoriasToolStripMenuItem;
private ToolStripMenuItem informesToolStrip;
private ToolStripMenuItem facturasPorFechaToolStripMenuItem;
private ToolStripMenuItem facturasPorClienteToolStripMenuItem;
private ToolStripMenuItem productoMasVendidoToolStripMenuItem;
}
}