Zum Inhalt springen

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#

MethodDescription
::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

static

ParameterTypeDescription
$originalInvoiceData
$numberstring
$reasonPriceReductionReason
$percentBrick\Math\BigDecimal|int|string|null = null
$amountBrick\Math\BigDecimal|int|string|null = null
$amountsarray<string, Brick\Math\BigDecimal|int|string>|null = nullnet amount per VAT group, keyed "category:rate" ("S:19", "E:0", "O" for a group without rate)
$issueDate?Date = null
$locale?string = null
$titlestring|null = nulldocument title in the PDF; without it the title "price_reduction" of $policy, otherwise the label "price_reduction_title"
$policy?CorrectionPolicy = null
$calculatorTotalsCalculator = 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

Die Open-Core-Pakete stehen unter der MIT-Lizenz. Die rechtlichen Formulierungen der Länderpakete sind mit einer Steuerberatung abzustimmen.