VatPreset
: string
in package
implements
DatedTaxPreset
Tax presets for Germany.
Standard and Reduced take the rate that holds on the supply date of the line (TaxTables), e.g. 16 % and 5 % for supplies in the second half of 2020; rate() returns the rate of today.
The note texts and legal references are proposals and must be confirmed by a tax adviser before the first release (legal review in the README).
Table of Contents
Interfaces
Cases
- Export = 'de.export'
- IntraCommunitySupply = 'de.intra_community_supply'
- MarginAntiques = 'de.margin_antiques'
- MarginArt = 'de.margin_art'
- MarginSecondHand = 'de.margin_second_hand'
- NotTaxableInGermany = 'de.not_taxable'
- Reduced = 'de.reduced'
- Reduced rate (section 12 (2) UStG) of the supply date, today 7 %.
- Reduced7 = 'de.reduced_7'
- ReverseChargeDomestic = 'de.reverse_charge_domestic'
- ReverseChargeEu = 'de.reverse_charge_eu'
- SmallBusiness = 'de.small_business'
- Standard = 'de.standard'
- Standard rate (section 12 (1) UStG) of the supply date, today 19 %.
- Standard19 = 'de.standard_19'
- TravelAgency = 'de.travel_agency'
- TriangularTransaction = 'de.triangular_transaction'
- ZeroRatedPv = 'de.zero_rated_pv'
Methods
- canonical() : self
- The preset without a rate in its name: Standard for Standard19, Reduced for Reduced7.
- category() : VatCategory
- exempt() : TaxPreset
- Tax exemption with a specific legal reference, e.g. VatPreset::exempt('§ 4 Nr. 14 UStG'). The text ("de.exempt" in tax.php) defaults to German like the cases.
- exemptionReason() : string|null
- exemptionReasonCode() : VatExemptionReasonCode|null
- fromKey() : self|null
- The case of a key, e.g. of LineVat::$presetKey; null for keys of other presets.
- key() : string
- on() : TaxPreset
- The preset with the rate of the date; presets without a dated rate return themselves.
- rate() : BigDecimal|null
Cases
Standard
Standard rate (section 12 (1) UStG) of the supply date, today 19 %.
Reduced
Reduced rate (section 12 (2) UStG) of the supply date, today 7 %.
Standard19
use Standard; the key "de.standard_19" of stored data stays readable
Reduced7
use Reduced; the key "de.reduced_7" of stored data stays readable
ZeroRatedPv
SmallBusiness
ReverseChargeDomestic
ReverseChargeEu
IntraCommunitySupply
TriangularTransaction
Export
NotTaxableInGermany
MarginSecondHand
MarginArt
MarginAntiques
TravelAgency
Methods
canonical()
The preset without a rate in its name: Standard for Standard19, Reduced for Reduced7.
public
canonical() : self
Return values
selfcategory()
public
category() : VatCategory
Return values
VatCategoryexempt()
Tax exemption with a specific legal reference, e.g. VatPreset::exempt('§ 4 Nr. 14 UStG'). The text ("de.exempt" in tax.php) defaults to German like the cases.
public
static exempt(string $paragraph[, VatExemptionReasonCode|RawCode|string|null $code = null ]) : TaxPreset
Parameters
- $paragraph : string
- $code : VatExemptionReasonCode|RawCode|string|null = null
Return values
TaxPresetexemptionReason()
public
exemptionReason([string|null $locale = null ]) : string|null
Parameters
- $locale : string|null = null
Return values
string|nullexemptionReasonCode()
public
exemptionReasonCode() : VatExemptionReasonCode|null
Return values
VatExemptionReasonCode|nullfromKey()
The case of a key, e.g. of LineVat::$presetKey; null for keys of other presets.
public
static fromKey(string $key) : self|null
Parameters
- $key : string
Return values
self|nullkey()
public
key() : string
Return values
stringon()
The preset with the rate of the date; presets without a dated rate return themselves.
public
on(Date $date) : TaxPreset
Parameters
- $date : Date
Return values
TaxPresetrate()
public
rate() : BigDecimal|null