Finanzen: Steuer-Texte zu den Grenzen genauer, Test fuer gleichen Tag
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3826f1ab72
commit
18bc3012e0
4 files changed
+82
-16
No files matched your search
@@ -5,8 +5,8 @@ import { forecastNotes, forecastRows } from '../../lib/financeView'
|
||||
/**
|
||||
* Block 3: „Vorschau 30 Tage“. Je Posten Datum, Bezeichnung, „sicher“/„erwartet“ (als Text), Betrag mit Vorzeichen
|
||||
* und der laufende Saldo beider Linien ab dem Kontostand. Ohne Kontostand entfallen die Saldo-Spalten (mit Hinweis).
|
||||
* Darunter die Annahme des Servers und Hinweise, wenn Stripe oder die Abos fehlen. Schmal (Karte unter ca. 560 px)
|
||||
* wird jede Zeile zweizeilig: Datum, Posten, Betrag / Sicherheit, Salden.
|
||||
* Darunter die Annahme des Servers und Hinweise, wenn Stripe oder die Abos fehlen. Schmal (Karte bis 560 px)
|
||||
* wird jede Zeile dreizeilig: Datum, Sicherheit und Betrag / Posten / beide Salden; ohne Salden sind es zwei Zeilen.
|
||||
*/
|
||||
export default function ForecastTable({ vorschau, kontostandCents, stripeDown = false, abosFehler = false }) {
|
||||
const v = vorschau && typeof vorschau === 'object' ? vorschau : {}
|
||||
|
||||
@@ -23,6 +23,7 @@ export default function TaxCard({ steuer }) {
|
||||
<div className="fin-fact-label">Kleinunternehmer (§ 19 UStG)</div>
|
||||
<div className={`fin-fact-value${v.small.known ? '' : ' fin-fact-unknown'}`}>{v.small.counterText}</div>
|
||||
{v.small.shareText && <div className="fin-fact-sub">{v.small.shareText}</div>}
|
||||
<div className="fin-fact-sub">{v.small.limitText}</div>
|
||||
<div className="fin-fact-sub">{v.small.hardText}</div>
|
||||
{v.small.previousText && <div className="fin-fact-sub">{v.small.previousText}</div>}
|
||||
</div>
|
||||
|
||||
+13
-5
@@ -289,7 +289,7 @@ const GEWERBE_ALLOWANCE_CENTS = 2_450_000
|
||||
|
||||
/**
|
||||
* Texte der Steuerkarte aus `steuer`:
|
||||
* { reserve: { amountText, basisText }, small: { known, counterText, shareText, hardText, previousText },
|
||||
* { reserve: { amountText, basisText }, small: { known, counterText, shareText, limitText, hardText, previousText },
|
||||
* gewerbeText, prepayment: { dateText, amountText } | null }.
|
||||
* Ist der Kleinunternehmer-Zähler null (Stripe nicht erreichbar), steht „unbekannt“ statt einer Zahl.
|
||||
*/
|
||||
@@ -308,7 +308,9 @@ export function taxView(steuer) {
|
||||
}
|
||||
|
||||
const previous = isNum(k.vorjahrCents)
|
||||
? `Vorjahr: ${euro(k.vorjahrCents)}${k.vorjahrCents > limit ? ` (über der Grenze von ${euroWhole(limit)})` : ''}`
|
||||
? `Vorjahr: ${euro(k.vorjahrCents)}${
|
||||
k.vorjahrCents > limit ? ` (über ${euroWhole(limit)}: im laufenden Jahr keine Kleinunternehmerregelung)` : ''
|
||||
}`
|
||||
: null
|
||||
|
||||
const prepay = s.naechsteVorauszahlung
|
||||
@@ -322,13 +324,19 @@ export function taxView(steuer) {
|
||||
small: {
|
||||
known,
|
||||
counterText: known ? `${euro(k.jahrCents)} von ${euroWhole(limit)}${year !== null ? ` (${year})` : ''}` : 'unbekannt (Stripe nicht erreichbar)',
|
||||
shareText: known && isNum(k.anteilFolgejahr) ? `${percentDe(k.anteilFolgejahr * 100, 1)} % der Grenze` : null,
|
||||
hardText: `Grenze ${euroWhole(hard)}: darüber endet die Regelung sofort.`,
|
||||
shareText:
|
||||
known && isNum(k.anteilFolgejahr)
|
||||
? `${percentDe(k.anteilFolgejahr * 100, 1)} % der ${euroWhole(limit).replace(' €', '-€')}-Grenze`
|
||||
: null,
|
||||
limitText: `Über ${euroWhole(limit)} im Jahr${year !== null ? ` ${year}` : ''}: ab ${
|
||||
year !== null ? year + 1 : 'dem Folgejahr'
|
||||
} keine Kleinunternehmerregelung.`,
|
||||
hardText: `Grenze ${euroWhole(hard)}: Ab dem Umsatz, der diese Grenze übersteigt, gilt schon im laufenden Jahr die Regelbesteuerung (Umsatzsteuer).`,
|
||||
previousText: previous,
|
||||
},
|
||||
gewerbeText:
|
||||
s.gewerbesteuerHinweis === true
|
||||
? `Der Gewinn liegt über dem Gewerbesteuer-Freibetrag für Personengesellschaften (${euroWhole(GEWERBE_ALLOWANCE_CENTS)}). Es kann Gewerbesteuer anfallen.`
|
||||
? `Der Gewinn${year !== null ? ` ${year}` : ''} liegt über dem Gewerbesteuer-Freibetrag von ${euroWhole(GEWERBE_ALLOWANCE_CENTS)} (natürliche Personen und Personengesellschaften, § 11 GewStG). Auf den übersteigenden Gewerbeertrag kann Gewerbesteuer anfallen.`
|
||||
: null,
|
||||
prepayment,
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user