diff --git a/src/lib/leads.js b/src/lib/leads.js
index 65a1e45..9a236bb 100644
--- a/src/lib/leads.js
+++ b/src/lib/leads.js
@@ -1,5 +1,6 @@
import { databases, DATABASE_ID, COLLECTIONS, Query, ID } from './appwrite'
import { rejectionLine, notesWithRejection } from './leadDuplicates'
+import { kundenartPruefen } from './kundenFelder'
/** Pflichtfelder eines festen Kunden: Name, E-Mail und vollständige Anschrift (Voraussetzung für „Zum festen Kunden machen“). */
export function isInvoiceReady(c) {
@@ -55,13 +56,16 @@ export async function createAcquisitionTicket(customer, user) {
return databases.createDocument(DATABASE_ID, COLLECTIONS.WORKORDERS, ID.unique(), data)
}
-/** Legt einen Lead an (Unternehmen, E-Mail, Telefon) und erstellt das Akquise-Ticket. */
-export async function createLead({ company, email, phone }, user) {
+/** Legt einen Lead an (Unternehmen, E-Mail, Telefon, Kundenart) und erstellt das Akquise-Ticket. Ohne gültige Kundenart wird nichts geschrieben. */
+export async function createLead({ company, email, phone, kundenart }, user) {
+ const fehler = kundenartPruefen(kundenart)
+ if (fehler) throw new Error(fehler)
const customer = await databases.createDocument(DATABASE_ID, COLLECTIONS.CUSTOMERS, ID.unique(), {
name: company,
companyName: company,
email: email || '',
phone: phone || '',
+ kundenart,
customerStatus: 'lead',
updatedAt: new Date().toISOString(),
})
diff --git a/src/pages/CustomersPage.jsx b/src/pages/CustomersPage.jsx
index dcd8588..791ff4b 100644
--- a/src/pages/CustomersPage.jsx
+++ b/src/pages/CustomersPage.jsx
@@ -7,6 +7,8 @@ import { CUSTOMER_TABS, customerBadges, customerTitle, filterCustomers, stageCou
import { isRowActivation } from '../lib/rowClick'
import { findDuplicates } from '../lib/leadDuplicates'
import DuplicateWarning from '../components/customer/DuplicateWarning'
+import KundenartAuswahl from '../components/KundenartAuswahl'
+import { kundenartPruefen, KUNDENART_AUSWAHL_HINWEIS } from '../lib/kundenFelder'
import { PageHeader, Tabs, Button, Badge, EmptyState, Field, Dialog } from '../components/ui'
export default function CustomersPage() {
@@ -138,6 +140,7 @@ function CreateLeadForm({ customers, onCancel, onDone }) {
const [company, setCompany] = useState('')
const [email, setEmail] = useState('')
const [phone, setPhone] = useState('')
+ const [kundenart, setKundenart] = useState('')
const [busy, setBusy] = useState(false)
const [error, setError] = useState(null)
// Abgleich mit allen Kunden (auch archivierten und abgesagten), damit niemand doppelt angerufen wird
@@ -146,9 +149,11 @@ function CreateLeadForm({ customers, onCancel, onDone }) {
const submit = async (e) => {
e.preventDefault()
if (!company.trim()) { setError('Unternehmen erforderlich'); return }
+ const f = kundenartPruefen(kundenart)
+ if (f) { setError(f); return }
setBusy(true); setError(null)
try {
- await onDone({ company: company.trim(), email: email.trim(), phone: phone.trim() })
+ await onDone({ company: company.trim(), email: email.trim(), phone: phone.trim(), kundenart })
} catch (err) {
setError(err.message || 'Fehler')
setBusy(false)
@@ -189,6 +194,9 @@ function CreateLeadForm({ customers, onCancel, onDone }) {
setPhone(e.target.value)} />
+
+
+
)
}