API reference / Quittio \ Core \ Corrections
PriceReduction
final class in quittio/core
Quittio\Core\Corrections\PriceReduction · Source
Document on a reduction of the consideration of an issued invoice (section 17 UStG), e.g. a cash discount taken, a reduction because of a complaint about defects or a bonus: a credit note (type code 381, positive amounts) with one line per VAT group of the original, the reference to the original (BG-3) and a note that names the reduction of the net amount and of the VAT per rate (BT-22), titled "Entgeltminderung" in Germany.
It is no cancellation and no correction of the invoice: the invoice stays correct, only the consideration changed (section 14.11 (4) UStAE). In Germany a document is only required for section 17 (4) UStG, and it need not be an e-invoice (section 17.1 (3a) UStAE); a cash discount may as well be booked on receipt of the payment.
The reduction is a percentage of every VAT group, the net amount of an invoice with one VAT group, or net amounts per VAT group keyed "category:rate", e.g. ['S:19' => '50.00', 'S:7' => '5.00'].
Methods#
| Method | Description |
|---|---|
::of() |
of()#
public static function of(
InvoiceData $original,
string $number,
PriceReductionReason $reason,
BigDecimal|int|string|null $percent = null,
BigDecimal|int|string|null $amount = null,
array<string, BigDecimal|int|string>|null $amounts = null,
?Date $issueDate = null,
?string $locale = null,
string|null $title = null,
?CorrectionPolicy $policy = null,
TotalsCalculator $calculator = new \Quittio\Core\Calculation\En16931Calculator(),
): InvoiceBuilder| Parameter | Type | Description |
|---|---|---|
$original | InvoiceData | |
$number | string | |
$reason | PriceReductionReason | |
$percent | Brick\Math\BigDecimal|int|string|null = null | |
$amount | Brick\Math\BigDecimal|int|string|null = null | |
$amounts | array<string, Brick\Math\BigDecimal|int|string>|null = null | net amount per VAT group, keyed "category:rate" ("S:19", "E:0", "O" for a group without rate) |
$issueDate | ?Date = null | |
$locale | ?string = null | |
$title | string|null = null | document title in the PDF; without it the title "price_reduction" of $policy, otherwise the label "price_reduction_title" |
$policy | ?CorrectionPolicy = null | |
$calculator | TotalsCalculator = new \Quittio\Core\Calculation\En16931Calculator() |
- Returns
InvoiceBuilder- Throws
InvalidArgumentException– for a credit note, a self-billed document or an invoice without calculated VAT breakdown, or for amounts that do not fit the original