Link Search Menu Expand Document

Descuentos y cargos

Para a帽adir uno o varios descuentos a una l铆nea de producto se debe indicar a la hora de crear la instancia de FacturaeItem. De forma similar, pueden a帽adirse cargos a un producto que, al contrario que los descuentos, incrementar谩n su precio.

$fac->addItem(new FacturaeItem([
  "name" => "Un producto con descuento",
  "unitPriceWithoutTax" => 500, // NOTA: estos descuentos y cargos se
                                // aplican sobre la base imponible
  "discounts" => [
    ["reason" => "Descuento del 20%", "rate" => 20],
    ["reason" => "5鈧 de descuento", "amount" => 5]
  ],
  "charges" => [
    ["reason" => "Recargo del 1,30%", "rate" => 1.3]
  ],
  "taxes" => [Facturae::TAX_IVA => 21]
]));

Descuentos y cargos sobre el total con impuestos

Supongamos que vendemos un producto por un importe de 100鈧 (IVA incluido) y descuento de 5鈧. Por defecto, Facturae-PHP aplicar谩 el descuento sobre los 100鈧 siempre y cuando se indique el campo unitPrice en vez de unitPriceWithoutTax:

$fac->addItem(new FacturaeItem([
  "name" => "Un producto con descuento",
  "unitPrice" => 100,
  "discounts" => [
    ["reason" => "Descuento de 5鈧 (IVA inclu铆do)", "amount" => 5]
  ],
  "taxes" => [Facturae::TAX_IVA => 10]
]));

Esto significa que Facturae-PHP ajustar谩 el importe del descuento para representarlo en funci贸n de la base imponible como especifica el est谩ndar.

Si se quisiera evitar este comportamiento y aplicar un descuento a la base imponible de una l铆nea de producto con impuestos inclu铆dos, se deber谩 usar el flag hasTaxes:

$fac->addItem(new FacturaeItem([
  "name" => "Un producto con descuento",
  "unitPrice" => 100,
  "discounts" => [
    ["reason" => "Descuento de 5鈧", "amount" => 5, "haxTaxes" => false]
  ],
  "taxes" => [Facturae::TAX_IVA => 10]
]));

NOTA

Consulta el test DiscountsTest.php dentro del directorio tests/ para m谩s informaci贸n sobre este comportamiento.