📊 Descripción General
La entidad FacturaLinea representa las líneas individuales de una factura en el sistema RestMaster. Esta entidad contiene todos los detalles de productos, cantidades, precios, impuestos y información contextual como camarero, salón y mesa.
🎯 Propósito de la Entidad
- Detalles de Productos: Información específica de cada producto en la factura
- Cálculo de Precios: Precios con y sin IVA
- Control de Cantidades: Gestión de cantidades y gramos
- Información Contextual: Camarero, salón, mesa
- Control de Orden: Orden de presentación en la factura
💡 Ejemplo de Uso
// Crear una línea de factura
var facturaLinea = new FacturaLinea
{
TipoDocumento = "F",
Serie = "A",
Factura = 1001,
Relacion = 1,
Fecha = DateTime.Now,
Hora = DateTime.Now,
Camarero = 1,
Salon = 1,
Mesa = 5,
Orden = 1,
Articulo = "HAMB001",
Descripcion = "Hamburguesa Clásica",
Cantidad = 2,
Precio = 8.50,
PrecioIva = 10.29,
Iva = 21.0,
TotalLinea = 17.00,
TotalLineaIva = 20.58,
Gramos = "N",
Familia = "PLATOS",
Invitacion = "N",
Cierre = 1
};
// Consultar líneas de una factura
var lineasFactura = context.FacturaLineas
.Where(fl => fl.TipoDocumento == "F" &&
fl.Serie == "A" &&
fl.Factura == 1001)
.OrderBy(fl => fl.Orden)
.ToList();
// Consultar líneas por camarero
var lineasCamarero = context.FacturaLineas
.Where(fl => fl.Camarero == 1 &&
fl.Fecha == DateTime.Today)
.ToList();
// Consultar líneas por familia
var lineasFamilia = context.FacturaLineas
.Where(fl => fl.Familia == "BEBIDAS" &&
fl.Fecha >= DateTime.Today.AddDays(-7))
.ToList();
// Calcular total de líneas
var totalFactura = context.FacturaLineas
.Where(fl => fl.TipoDocumento == "F" &&
fl.Serie == "A" &&
fl.Factura == 1001)
.Sum(fl => fl.TotalLineaIva ?? 0);