Gutschriften Phase 2a: Kleinunternehmer-Flag am Kunden + USt-Default
Kunden-Feld vatExempt (Kleinunternehmer/USt-befreit §19) + Migration (ADD COLUMN IF NOT EXISTS). Checkbox im Kundenformular nur fuer Firmenkunden. Gutschrift-Vorbelegung vatRelevant wird aus dem Kunden abgeleitet: Firmenkunde ohne USt-Befreiung -> USt-relevant an (Netto), sonst aus (wie Privat). Jede Gutschrift speichert ihren eigenen Snapshot, ein spaeterer Statuswechsel des Kunden aendert bestehende Gutschriften nicht. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -77,6 +77,7 @@ export default function CustomerForm() {
|
||||
phone: data.phone || '',
|
||||
mobile: data.mobile || '',
|
||||
taxNumber: data.taxNumber || '',
|
||||
vatExempt: data.vatExempt === true || (data.vatExempt as any) === 'true',
|
||||
commercialRegisterNumber: data.commercialRegisterNumber || '',
|
||||
notes: data.notes || '',
|
||||
birthPlace: data.birthPlace || '',
|
||||
@@ -229,6 +230,20 @@ export default function CustomerForm() {
|
||||
placeholder="z.B. HRB 12345"
|
||||
/>
|
||||
</div>
|
||||
<label className="mt-4 flex items-start gap-2 text-sm">
|
||||
<input
|
||||
type="checkbox"
|
||||
{...register('vatExempt')}
|
||||
className="mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"
|
||||
/>
|
||||
<span>
|
||||
<span className="font-medium">Kleinunternehmer / USt-befreit (§19 UStG)</span>
|
||||
<span className="block text-gray-500">
|
||||
Wird bei Gutschriften wie ein Privatkunde behandelt (keine USt-Vorbelegung).
|
||||
Ändert nur neue Gutschriften – bereits erstellte bleiben unberührt.
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
{isEdit && (
|
||||
<p className="mt-4 text-sm text-gray-500">
|
||||
Dokumente (Gewerbeanmeldung, Handelsregisterauszug) können nach dem Speichern in der Kundendetailansicht hochgeladen werden.
|
||||
|
||||
@@ -109,6 +109,7 @@ export interface Customer {
|
||||
phone?: string;
|
||||
mobile?: string;
|
||||
taxNumber?: string;
|
||||
vatExempt?: boolean;
|
||||
businessRegistrationPath?: string;
|
||||
commercialRegisterPath?: string;
|
||||
commercialRegisterNumber?: string;
|
||||
|
||||
Reference in New Issue
Block a user