This commit is contained in:
@@ -117,6 +117,42 @@ final class Lizenzpruefung
|
||||
return $menge;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rechnet freie, bestehende Einzellizenzen auf nicht separat lizenzierte Waermepumpen an.
|
||||
*
|
||||
* @param array<string, mixed> $lease
|
||||
* @param array<string, int> $verwendeteMengen
|
||||
* @return array<string, int>
|
||||
*/
|
||||
public static function beruecksichtigeBestandslizenzFuerWaermepumpen(
|
||||
array $lease,
|
||||
array $verwendeteMengen
|
||||
): array {
|
||||
$waermepumpen = $verwendeteMengen['heat_pump'] ?? 0;
|
||||
if ($waermepumpen <= 0) {
|
||||
return $verwendeteMengen;
|
||||
}
|
||||
|
||||
$nichtSeparatLizenziert = max(
|
||||
0,
|
||||
$waermepumpen - self::berechtigungsMenge($lease, 'heat_pump')
|
||||
);
|
||||
$verbraucher = $verwendeteMengen['consumer_single'] ?? 0;
|
||||
$freieBestandslizenzen = max(
|
||||
0,
|
||||
self::berechtigungsMenge($lease, 'consumer_single') - $verbraucher
|
||||
);
|
||||
$angerechnet = min($nichtSeparatLizenziert, $freieBestandslizenzen);
|
||||
if ($angerechnet === 0) {
|
||||
return $verwendeteMengen;
|
||||
}
|
||||
|
||||
$verwendeteMengen['heat_pump'] = $waermepumpen - $angerechnet;
|
||||
$verwendeteMengen['consumer_single'] = $verbraucher + $angerechnet;
|
||||
|
||||
return $verwendeteMengen;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, mixed> $lease
|
||||
* @param array<string, int> $verwendeteMengen
|
||||
|
||||
Reference in New Issue
Block a user