import { Button } from '../ui' import { euro } from '../../lib/financeFormat' import { INVOICE_LIMITS, lineTotalCents, invoiceTotalCents } from '../../lib/financeView' /** * Positionszeilen des Rechnungsdialogs (Beschreibung, Menge, Einzelpreis, Summe, Entfernen) mit „+ Position“-Knopf. * Rein darstellend, hält keinen Zustand. Props: legende, labelPrefix (z. B. „Position“ oder „Zusatzposition“), idPrefix, * zeilen ([{ uid, description, quantity, price }]), minZeilen, onChange(uid, feld, wert), onAdd(), onRemove(uid), addLabel, * zeigeSumme (Gesamtsumme und Hinweis zu § 19 UStG). */ export default function RechnungPositionen({ legende, labelPrefix, idPrefix, zeilen, minZeilen = 0, onChange, onAdd, onRemove, addLabel, zeigeSumme = false, }) { return (
{legende}
{zeilen.map((zeile, index) => { const n = index + 1 const summe = lineTotalCents(zeile) return (
onChange(zeile.uid, 'description', e.target.value)} />
onChange(zeile.uid, 'quantity', e.target.value)} />
onChange(zeile.uid, 'price', e.target.value)} />
Summe {summe === null ? '–' : euro(summe)}
) })}
{zeigeSumme && (
Summe {euro(invoiceTotalCents(zeilen))}
)}
{zeigeSumme &&

Gemäß § 19 UStG ohne Umsatzsteuer.

}
) }