# Líneas e impuestos

Líneas básicas

$invoice->line(
description: 'Ordenador portátil',
quantity: 2,
price: 899.99,
vat: 21
);

Firma del método

public function line(
string $description,
float $price,
float $quantity = 1,
?float $vat = null,
?float $irpf = null,
?float $igic = null,
?float $surcharge = null,
?float $ie = null,
bool $ieWithheld = false,
?float $discount = null,
?string $articleCode = null,
?string $detailedDescription = null,
?UnitOfMeasure $unit = null,
): self

Atajos fiscales

IVA:

$invoice->line('Licencia software', price: 100, vat: 21); // General 21%
$invoice->line('Libro', price: 20, vat: 10); // Reducido 10%
$invoice->line('Alimento esencial', price: 15, vat: 4); // Superreducido 4%

IRPF (retención):

$invoice->line('Asesoría legal', price: 2000, vat: 21, irpf: 15);

IGIC (Canarias):

$invoice->line('Producto', price: 100, igic: 7);

No combines IVA e IGIC en la misma línea.

Recargo de equivalencia:

$invoice->line('Producto minorista', price: 100, vat: 21, surcharge: 5.2);

Tipos de recargo: IVA 21% → 5.2%, IVA 10% → 1.4%, IVA 4% → 0.5%.

Impuestos especiales (IE):

$invoice->line('Alcohol', price: 50, vat: 21, ie: 10);

Descuentos por línea

$invoice->line('Producto', quantity: 10, price: 100, discount: 20, vat: 21);
// Subtotal: 1000, Descuento -20% = 800, IVA +168, Total: 968

Códigos de artículo y unidades

use PhpFacturae\Enums\UnitOfMeasure;
$invoice->line('Electricidad', quantity: 150.5, price: 0.15,
unit: UnitOfMeasure::KWh, vat: 21, articleCode: 'ELEC-001');

Líneas exentas

$invoice->exemptLine(
description: 'Curso de formación profesional',
price: 2000,
reason: 'Exenta según Artículo 20 LIVA'
);

Configuración fiscal personalizada

use PhpFacturae\Entities\TaxBreakdown;
use PhpFacturae\Enums\Tax;
$invoice->customLine(
description: 'Servicio complejo',
price: 1000,
taxes: [
new TaxBreakdown(Tax::IVA, rate: 21),
new TaxBreakdown(Tax::IRPF, rate: 15),
]
);

Enum Tax (29 tipos)

Tax::IVA // Impuesto sobre el Valor Añadido
Tax::IPSI // Impuesto sobre la Producción (Ceuta y Melilla)
Tax::IGIC // Impuesto General Indirecto Canario
Tax::IRPF // Retención del IRPF
Tax::IRNR // Impuesto sobre la Renta de No Residentes
Tax::IE // Impuesto Especial
Tax::RA // Recargo de equivalencia agrario
Tax::ITPAJD // Impuesto de Transmisiones Patrimoniales
Tax::REIVA // Recargo de equivalencia (IVA)
Tax::REIGIC // Recargo de equivalencia (IGIC)
Tax::REIPSI // Recargo de equivalencia (IPSI)
// ... y 18 más especializados