This commit is contained in:
+17
-9
@@ -65,7 +65,7 @@ class Manager extends IPSModule implements ManagerSchnittstelle
|
||||
'Name' => 'Verbraucher einstufig',
|
||||
],
|
||||
'{A31C9274-54F7-4BD2-9804-7AF23E86C4D1}' => [
|
||||
'Katalog' => 'consumer_single',
|
||||
'Katalog' => 'heat_pump',
|
||||
'Name' => 'Waermepumpe',
|
||||
],
|
||||
'{0D94913C-0F31-4C29-A685-6EB4AE58E55D}' => [
|
||||
@@ -1127,19 +1127,23 @@ class Manager extends IPSModule implements ManagerSchnittstelle
|
||||
private function pruefeVerbraucherlizenzen(array $ids): void
|
||||
{
|
||||
[$mengen, $namen] = $this->verbraucherLizenzbelegung($ids);
|
||||
$lease = $this->leseLizenzLease();
|
||||
$pruefmengen = Lizenzpruefung::beruecksichtigeBestandslizenzFuerWaermepumpen(
|
||||
$lease,
|
||||
$mengen
|
||||
);
|
||||
|
||||
try {
|
||||
Lizenzpruefung::pruefeVerbrauchermengen($this->leseLizenzLease(), $mengen);
|
||||
Lizenzpruefung::pruefeVerbrauchermengen($lease, $pruefmengen);
|
||||
} catch (InvalidArgumentException $fehler) {
|
||||
foreach ($mengen as $kennung => $verwendet) {
|
||||
$lizenziert = Lizenzpruefung::berechtigungsMenge(
|
||||
$this->leseLizenzLease(),
|
||||
$kennung
|
||||
);
|
||||
foreach ($pruefmengen as $kennung => $verwendet) {
|
||||
$lizenziert = Lizenzpruefung::berechtigungsMenge($lease, $kennung);
|
||||
if ($verwendet > $lizenziert) {
|
||||
$name = $namen[$kennung]
|
||||
?? ($kennung === 'consumer_single' ? 'Waermepumpe (Bestandslizenz)' : $kennung);
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'%s: %d aktiviert, aber nur %d lizenziert. Bitte Auswahl reduzieren oder Lizenz erweitern.',
|
||||
$namen[$kennung],
|
||||
$name,
|
||||
$verwendet,
|
||||
$lizenziert
|
||||
), 0, $fehler);
|
||||
@@ -2329,7 +2333,11 @@ class Manager extends IPSModule implements ManagerSchnittstelle
|
||||
[$mengen] = $this->verbraucherLizenzbelegung(
|
||||
$this->konfigurierteAktiveVerbraucherIDs()
|
||||
);
|
||||
Lizenzpruefung::pruefeVerbrauchermengen($lease, $mengen);
|
||||
$pruefmengen = Lizenzpruefung::beruecksichtigeBestandslizenzFuerWaermepumpen(
|
||||
$lease,
|
||||
$mengen
|
||||
);
|
||||
Lizenzpruefung::pruefeVerbrauchermengen($lease, $pruefmengen);
|
||||
|
||||
return true;
|
||||
} catch (Throwable $fehler) {
|
||||
|
||||
Reference in New Issue
Block a user