← Volver a Entidades de Facturación

FacturaLinea

Entidad para gestión de líneas de factura y detalles de productos

📊 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

📋 Propiedades de la Entidad

TipoDocumento

string (1)
Tipo de documento (clave primaria)

Serie

string (10)
Serie del documento (clave primaria)

Factura

double
Número de factura (clave primaria)

Relacion

double
Relación de la línea (clave primaria)

Fecha

DateTime
Fecha de la línea de factura

Hora

DateTime
Hora de la línea de factura

Camarero

double?
Camarero que atendió la mesa

Salon

double?
Salón donde se sirvió

Mesa

double?
Mesa donde se sirvió

Orden

double
Orden de presentación en la factura

Articulo

string (13)
Código del artículo (requerido)

Descripcion

string (30)
Descripción del artículo

Cantidad

double?
Cantidad del artículo

Precio

double?
Precio unitario sin IVA

PrecioIva

double?
Precio unitario con IVA

Iva

double?
Porcentaje de IVA aplicado

TotalLinea

double?
Total de la línea sin IVA

TotalLineaIva

double?
Total de la línea con IVA

Gramos

string (1)
Indicador de producto por peso

Familia

string (25)
Familia del artículo

Invitacion

string (1)
Indicador de invitación

Cierre

double?
Cierre asociado a la línea

🔗 Relaciones con Otras Entidades

📦 Entidades de Facturación

  • Factura: Factura principal relacionada
  • FacturaLineaModificador: Modificadores de la línea
  • FacturaLineaAnuladum: Línea anulada correspondiente

🎯 Funcionalidades Relacionadas

  • Gestión de Productos: Detalles de artículos
  • Cálculo de Precios: Precios con y sin IVA
  • Control de Cantidades: Gestión de cantidades
  • Información Contextual: Camarero, salón, mesa

💡 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);

🔧 Configuración de Base de Datos

🗄️ Configuración de Tabla

  • Tabla: FACTURA_LINEA
  • Clave Primaria: TIPO_DOCUMENTO + SERIE + FACTURA + RELACION
  • Índices: I_FACTURA_LINEA_FECHA, I_FACTURA_LINEA_ORDEN
  • Esquema: StoreData

🔑 Restricciones

  • TipoDocumento: Clave primaria, máximo 1 carácter
  • Serie: Clave primaria, máximo 10 caracteres
  • Factura: Clave primaria, número de factura
  • Relacion: Clave primaria, número de relación
  • Articulo: Requerido, máximo 13 caracteres
  • Descripcion: Máximo 30 caracteres
  • Gramos: Máximo 1 carácter
  • Familia: Máximo 25 caracteres
  • Invitacion: Máximo 1 carácter

🔗 Integración con Otros Componentes

📚 Componentes Relacionados

  • Back.API: InvoiceLineController para gestión
  • Back.Application: Servicios de líneas de factura
  • Back.Domain: DTOs de líneas de factura
  • Common.Domain.Master: Entidades maestro relacionadas
  • Common.Constants: Validaciones de líneas

🎯 Casos de Uso

  • Generación de Facturas: Crear líneas de factura
  • Gestión de Productos: Control de artículos en factura
  • Cálculo de Precios: Gestión de precios e IVA
  • Control de Cantidades: Gestión de cantidades
  • Información Contextual: Camarero, salón, mesa
  • Reportes: Análisis de líneas de factura