Senden einer Rechnung (Dialog und Entwurf in der Tabelle) fragt vorher: "Rechnung fuer
<Kunde> ueber <Betrag> jetzt festschreiben und an <E-Mail> senden? Danach laesst sie sich
nur noch stornieren."
Fehlt dem Kunden Strasse, PLZ oder Ort, zeigen Rechnungsdialog und Kundenansicht die
Warnung "Adresse des Kunden unvollstaendig ..." mit Weg zur Uebersicht, und Senden ist
ueber 250 € gesperrt (§ 14 Abs. 4 Nr. 1 UStG, Kleinbetragsrechnung); Entwuerfe bleiben
moeglich. Reine Helfer addressComplete und invoiceSendGate samt Tests.
Fehlermeldungen in Rechnungs- und Zuordnen-Dialog werden per scrollIntoView
({ block: 'nearest' }) in den sichtbaren Bereich geholt.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
27 lines
1.2 KiB
React
27 lines
1.2 KiB
React
import { Link } from 'react-router-dom'
|
|
import { ADDRESS_INCOMPLETE_TEXT, addressComplete } from '../../lib/financeView'
|
|
|
|
/**
|
|
* Hinweis „Adresse des Kunden unvollständig (Straße, PLZ, Ort). Für den Versand bitte zuerst ergänzen.“ mit Weg zur
|
|
* Übersicht des Kunden (dort stehen die Stammdaten). Rendert nichts, wenn die Anschrift vollständig ist. Mit
|
|
* `onShowOverview` (Reiter am Kunden) wechselt ein Knopf zum Reiter Übersicht, sonst führt ein Link zur Kundenseite.
|
|
* `variant`: 'dialog' (im Rechnungsdialog) oder 'page' (über der Rechnungsliste des Kunden).
|
|
*/
|
|
export default function AddressWarning({ customer, onShowOverview, variant = 'page' }) {
|
|
if (!customer || addressComplete(customer)) return null
|
|
return (
|
|
<div className={`fin-address-warn fin-address-warn-${variant}`} role="alert">
|
|
<span>{ADDRESS_INCOMPLETE_TEXT}</span>
|
|
{onShowOverview ? (
|
|
<button type="button" className="fin-link" onClick={onShowOverview}>
|
|
Zur Übersicht
|
|
</button>
|
|
) : customer.$id ? (
|
|
<Link className="fin-link" to={`/customers/${customer.$id}`}>
|
|
Zur Übersicht
|
|
</Link>
|
|
) : null}
|
|
</div>
|
|
)
|
|
}
|