Zum Inhalt springen

API reference / Quittio \ Core \ Countries

DunningLaw

final readonly class in quittio/core

Quittio\Core\Countries\DunningLaw · Source

Statutory late payment rules (EU late payment directive plus national law). Amounts and percentage points are decimal strings.

Informational metadata for applications and the pack's own helpers: the core does not apply it. Reminders take their fees and default interest explicitly (DocumentBuilder::fee(), interest() with a rate and a day count basis, e.g. $dayCount from here).

Properties#

PropertyTypeDescription
$b2bFixedRate readonlystring|nullfixed rate in percent for businesses instead of the reference rate plus $b2bInterestPoints (e.g. 5 % in Switzerland, Art. 104 OR); null = reference rate plus points
$b2bFlatRate readonly?string
$b2bInterestPoints readonlystring
$b2cFixedRate readonlystring|nullfixed rate in percent for consumers instead of the reference rate plus $b2cInterestPoints (e.g. 4 % in Austria, section 1000 (1) ABGB); null = reference rate plus points
$b2cInterestPoints readonlystring
$consumerDefaultAfterDays readonlyint|nulldays after due date and receipt after which a consumer is in default without a reminder, if the invoice points this out (e.g. section 286 (3) BGB); null = no such rule
$dayCount readonlyint|nulldays per year for default interest: 365 or 360, or null for actual/actual (365 or 366 days per calendar year, InterestCharge::ACTUAL_ACTUAL)
$referenceRateName readonly?string

Methods#

MethodDescription
->__construct()
->hasFixedRates()Whether the law needs no reference rate: fixed rates for businesses and consumers.

__construct()#

public function __construct(
    string $b2bInterestPoints = '8.00',
    string $b2cInterestPoints = '0.00',
    ?string $b2bFlatRate = '40.00',
    int|null $dayCount = 365,
    int|null $consumerDefaultAfterDays = null,
    ?string $referenceRateName = null,
    string|null $b2cFixedRate = null,
    string|null $b2bFixedRate = null,
)
ParameterTypeDescription
$b2bInterestPointsstring = '8.00'
$b2cInterestPointsstring = '0.00'
$b2bFlatRate?string = '40.00'
$dayCountint|null = 365days per year for default interest: 365 or 360, or null for actual/actual (365 or 366 days per calendar year, InterestCharge::ACTUAL_ACTUAL)
$consumerDefaultAfterDaysint|null = nulldays after due date and receipt after which a consumer is in default without a reminder, if the invoice points this out (e.g. section 286 (3) BGB); null = no such rule
$referenceRateName?string = null
$b2cFixedRatestring|null = nullfixed rate in percent for consumers instead of the reference rate plus $b2cInterestPoints (e.g. 4 % in Austria, section 1000 (1) ABGB); null = reference rate plus points
$b2bFixedRatestring|null = nullfixed rate in percent for businesses instead of the reference rate plus $b2bInterestPoints (e.g. 5 % in Switzerland, Art. 104 OR); null = reference rate plus points

hasFixedRates()#

public function hasFixedRates(): bool

Whether the law needs no reference rate: fixed rates for businesses and consumers.

Returns
bool

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