Añadida Funcionalidad Informes
This commit is contained in:
@@ -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
|
||||
|
||||
10
Entidades/DTO/DtoProductoInforme.cs
Normal file
10
Entidades/DTO/DtoProductoInforme.cs
Normal 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);
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using Entidades;
|
||||
using Entidades.DTO;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Modelo
|
||||
@@ -15,8 +16,8 @@ namespace Modelo
|
||||
{
|
||||
return context.Facturas
|
||||
.AsNoTracking()
|
||||
.Include(x=>x.Detalles)
|
||||
.Include(x=>x.Cliente)
|
||||
.Include(x => x.Detalles)
|
||||
.Include(x => x.Cliente)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
@@ -38,7 +39,7 @@ namespace Modelo
|
||||
{
|
||||
detalle.Producto = (detalle.Producto.EsPerecedero) ?
|
||||
context.ProductoPercederos.FirstOrDefault(x => x.Id == detalle.Producto.Id) :
|
||||
context.ProductoNoPercederos.FirstOrDefault(x => x.Id == detalle.Producto.Id) ;
|
||||
context.ProductoNoPercederos.FirstOrDefault(x => x.Id == detalle.Producto.Id);
|
||||
}
|
||||
|
||||
t.Detalles = list;
|
||||
@@ -61,10 +62,45 @@ namespace Modelo
|
||||
public Factura ObtenerPorId(Factura fac)
|
||||
{
|
||||
var factura = context.Facturas
|
||||
.Include(x=>x.Detalles)
|
||||
.ThenInclude(x=>x.Producto)
|
||||
.Include(x => x.Detalles)
|
||||
.ThenInclude(x => x.Producto)
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
49
Vista/PantallaPrincipal.Designer.cs
generated
49
Vista/PantallaPrincipal.Designer.cs
generated
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user