📊 Descripción General
La entidad FacturaIva representa el desglose de IVA por factura y tipo de impuesto en el sistema RestMaster. Esta entidad permite controlar los diferentes tipos de IVA aplicados en una factura, incluyendo subtotales, descuentos, bases imponibles e importes de IVA.
🎯 Propósito de la Entidad
- Control de IVA: Gestión por tipo de impuesto
- Desglose Fiscal: Separación por porcentajes de IVA
- Cálculo de Bases: Bases imponibles por tipo
- Control de Descuentos: Descuentos aplicados por IVA
- Prepago: Gestión de facturas prepago
💡 Ejemplo de Uso
// Crear registro de IVA general (21%)
var facturaIvaGeneral = new FacturaIva
{
TipoDocumento = "F",
Serie = "A",
Factura = 1001,
Iva = 21.0,
Fecha = DateTime.Now,
Subtotal = 100.00,
Descuento = 0.0,
ImporteDescuento = 0.0,
SubtotalPrepagoIva = 0.0,
SubtotalPrepago = 0.0,
Base = 100.00,
ImporteIva = 21.00,
Total = 121.00,
Cierre = 1
};
// Crear registro de IVA reducido (10%)
var facturaIvaReducido = new FacturaIva
{
TipoDocumento = "F",
Serie = "A",
Factura = 1001,
Iva = 10.0,
Fecha = DateTime.Now,
Subtotal = 50.00,
Descuento = 5.0,
ImporteDescuento = 2.50,
SubtotalPrepagoIva = 0.0,
SubtotalPrepago = 0.0,
Base = 47.50,
ImporteIva = 4.75,
Total = 52.25,
Cierre = 1
};
// Consultar IVA por factura
var ivaFactura = context.FacturaIvas
.Where(fi => fi.TipoDocumento == "F" &&
fi.Serie == "A" &&
fi.Factura == 1001)
.OrderBy(fi => fi.Iva)
.ToList();
// Consultar IVA por fecha
var ivaPorFecha = context.FacturaIvas
.Where(fi => fi.Fecha == DateTime.Today)
.GroupBy(fi => fi.Iva)
.Select(g => new {
Iva = g.Key,
Base = g.Sum(x => x.Base ?? 0),
ImporteIva = g.Sum(x => x.ImporteIva ?? 0),
Total = g.Sum(x => x.Total ?? 0)
})
.OrderBy(x => x.Iva)
.ToList();
// Consultar facturas con descuentos
var facturasConDescuento = context.FacturaIvas
.Where(fi => fi.Descuento > 0 &&
fi.Fecha >= DateTime.Today.AddDays(-7))
.ToList();
// Calcular total de IVA por factura
var totalIvaFactura = context.FacturaIvas
.Where(fi => fi.TipoDocumento == "F" &&
fi.Serie == "A" &&
fi.Factura == 1001)
.Sum(fi => fi.ImporteIva ?? 0);