asdasd
All checks were successful
Deploy / deploy-staging (push) Successful in 37s
Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-08-21 01:36:41 +02:00
parent 01ef5127b1
commit b3b3a27257
3 changed files with 13 additions and 9 deletions

View File

@@ -3331,17 +3331,17 @@
}), }),
h(StatCard, { h(StatCard, {
key: 'break-even-point', key: 'break-even-point',
label: 'Cash-Break-even', label: 'Gesamt-Break-even',
value: breakEvenReached value: breakEvenReached
? 'Erreicht' ? 'Erreicht'
: breakEvenDaysOverall !== null : breakEvenDaysOverall !== null
? `${fmtNumber(breakEvenDaysOverall, 2)} Tage` ? `${fmtNumber(breakEvenDaysOverall, 2)} Tage`
: (investedCapital === null ? 'Keine Mietbasis' : 'Nicht erreichbar'), : ((investedCapital === null && reinvestedCapital === null) ? 'Keine Mietbasis' : 'Nicht erreichbar'),
sub: investedCapital !== null sub: (investedCapital !== null || reinvestedCapital !== null)
? `${breakEvenEta ? `ETA ${breakEvenEta} · ` : ''}Cash ${fmtMoney(investedCapital, reportCurrency)}${reinvestedCapital !== null ? ` · Reinvest fix ${fmtMoney(reinvestedCapital, reportCurrency)}` : ''}` ? `${breakEvenEta ? `ETA ${breakEvenEta} · ` : ''}Cash ${fmtMoney(investedCapital, reportCurrency)}${reinvestedCapital !== null ? ` · Reinvest fix ${fmtMoney(reinvestedCapital, reportCurrency)}` : ''}`
: (breakEvenPrice !== null : (breakEvenPrice !== null
? `Break-even-Kurs ${fmtNumber(breakEvenPrice, 6)} ${reportCurrency}` ? `Break-even-Kurs ${fmtNumber(breakEvenPrice, 6)} ${reportCurrency}`
: (investedCapital === null : (investedCapital === null && reinvestedCapital === null
? 'Noch keine Miner als Mietbasis hinterlegt' ? 'Noch keine Miner als Mietbasis hinterlegt'
: 'Keine belastbare Break-even-Basis')), : 'Keine belastbare Break-even-Basis')),
}), }),

View File

@@ -152,7 +152,7 @@ Jede neu gespeicherte Buchung, die einen Kurs oder eine Waehrungsumrechnung beno
## Break-even ## Break-even
Der Cash-Break-even verwendet ausschliesslich Fiat-Investitionen gegen aktuelle, noch gehaltene Miner- und Walletbestaende. Krypto-Reinvestitionen werden daneben als `Reinvest fix` angezeigt und muessen immer den historischen festen Gegenwert aus dem zugeordneten `fx-rates`-Snapshot verwenden; eine Bewertung zum aktuellen Coin-Kurs ist unzulässig. Der Gesamt-Break-even verwendet die Summe aus Fiat-Investitionen und `Reinvest fix` gegen aktuelle, noch gehaltene Miner- und Walletbestaende. Krypto-Reinvestitionen muessen immer den historischen festen Gegenwert aus dem zugeordneten `fx-rates`-Snapshot verwenden; eine Bewertung zum aktuellen Coin-Kurs ist unzulässig.
## Verbindliche Fachregeln: Zielminer-ETA ## Verbindliche Fachregeln: Zielminer-ETA

View File

@@ -471,11 +471,14 @@ final class AnalyticsService
? (float) ($totalHoldingsValue ?? 0.0) + (float) ($settledCryptoSpendValue ?? 0.0) ? (float) ($totalHoldingsValue ?? 0.0) + (float) ($settledCryptoSpendValue ?? 0.0)
: null; : null;
$currentDailyRevenue = is_numeric($latest['theoretical_daily_revenue'] ?? null) ? (float) $latest['theoretical_daily_revenue'] : null; $currentDailyRevenue = is_numeric($latest['theoretical_daily_revenue'] ?? null) ? (float) $latest['theoretical_daily_revenue'] : null;
$breakEvenRemainingAmount = ($cashInvestedCapital !== null && $totalHoldingsValue !== null) $totalInvestedCapital = ($cashInvestedCapital !== null || $reinvestedCapital !== null)
? max(0.0, $cashInvestedCapital - $totalHoldingsValue) ? (float) ($cashInvestedCapital ?? 0.0) + (float) ($reinvestedCapital ?? 0.0)
: $cashInvestedCapital; : null;
$breakEvenRemainingAmount = ($totalInvestedCapital !== null && $totalHoldingsValue !== null)
? max(0.0, $totalInvestedCapital - $totalHoldingsValue)
: $totalInvestedCapital;
$breakEvenProjection = ( $breakEvenProjection = (
$cashInvestedCapital !== null && $totalInvestedCapital !== null &&
$breakEvenRemainingAmount !== null $breakEvenRemainingAmount !== null
) ? $this->projectBreakEvenDate( ) ? $this->projectBreakEvenDate(
is_array($settings['cost_plans'] ?? null) ? $settings['cost_plans'] : [], is_array($settings['cost_plans'] ?? null) ? $settings['cost_plans'] : [],
@@ -505,6 +508,7 @@ final class AnalyticsService
'invested_capital' => $this->roundOrNull($cashInvestedCapital, 8), 'invested_capital' => $this->roundOrNull($cashInvestedCapital, 8),
'cash_invested_capital' => $this->roundOrNull($cashInvestedCapital, 8), 'cash_invested_capital' => $this->roundOrNull($cashInvestedCapital, 8),
'reinvested_capital' => $this->roundOrNull($reinvestedCapital, 8), 'reinvested_capital' => $this->roundOrNull($reinvestedCapital, 8),
'total_invested_capital' => $this->roundOrNull($totalInvestedCapital, 8),
'wallet_balance_current_asset' => $this->roundOrNull($walletBalanceCurrentAssetEquivalent, 6), 'wallet_balance_current_asset' => $this->roundOrNull($walletBalanceCurrentAssetEquivalent, 6),
'wallet_balance_current_asset_direct' => $this->roundOrNull($walletBalanceCurrentAssetDirect, 6), 'wallet_balance_current_asset_direct' => $this->roundOrNull($walletBalanceCurrentAssetDirect, 6),
'holdings_current_asset' => $this->roundOrNull($holdingsCurrentAsset, 6), 'holdings_current_asset' => $this->roundOrNull($holdingsCurrentAsset, 6),