diff --git a/src/components/CreateTicketModal.jsx b/src/components/CreateTicketModal.jsx
index b093183..a203888 100644
--- a/src/components/CreateTicketModal.jsx
+++ b/src/components/CreateTicketModal.jsx
@@ -5,7 +5,7 @@ import { useEmployees } from '../hooks/useEmployees'
// Fallback-Werte falls Config nicht geladen werden kann
const DEFAULT_TICKET_TYPES = [
- 'Home Office', 'Holidays', 'Trip', 'Supportrequest', 'Change Request',
+ 'Akquise', 'Home Office', 'Holidays', 'Trip', 'Supportrequest', 'Change Request',
'Maintenance', 'Project', 'Webpage', 'Controlling', 'Development', 'Documentation',
'Meeting/Conference', 'IT Management', 'IT Security', 'Procurement',
'Rollout', 'Emergency Call', 'Other Services'
diff --git a/src/components/CreateWorksheetModal.jsx b/src/components/CreateWorksheetModal.jsx
index 49ac32d..d5f5828 100644
--- a/src/components/CreateWorksheetModal.jsx
+++ b/src/components/CreateWorksheetModal.jsx
@@ -30,6 +30,9 @@ const RESPONSE_LEVELS = [
'n/a'
]
+// Akquise-Tickets: Ergebnis des Kundenkontakts (statt technischer Status)
+const ACQUISITION_STATUS = ['In Kontakt', 'Zugesagt', 'Abgesagt']
+
export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCreate }) {
const { user } = useAuth()
const today = new Date().toLocaleDateString('de-DE', {
@@ -55,12 +58,18 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre
const [error, setError] = useState('')
const [autoCalculate, setAutoCalculate] = useState(true)
+ const isAcquisition = workorder?.type === 'Akquise'
+ const statusOptions = isAcquisition ? ACQUISITION_STATUS : STATUS_OPTIONS
+ const defaultStatus = isAcquisition
+ ? (ACQUISITION_STATUS.includes(workorder?.status) ? workorder.status : 'In Kontakt')
+ : (workorder?.status || 'Open')
+
// Reset form wenn Modal geöffnet wird
useEffect(() => {
if (isOpen && workorder) {
setFormData({
serviceType: 'Remote',
- newStatus: workorder.status || 'Open',
+ newStatus: defaultStatus,
newResponseLevel: workorder.responseLevel || '',
totalTime: 0,
startDate: today,
@@ -189,17 +198,22 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre
-
+
+ {isAcquisition && (
+
+ "Zugesagt" macht den Lead automatisch zum festen Kunden.
+
+ )}
diff --git a/src/components/InvoicePanel.jsx b/src/components/InvoicePanel.jsx
index 7c4ea8b..bd2f6f1 100644
--- a/src/components/InvoicePanel.jsx
+++ b/src/components/InvoicePanel.jsx
@@ -3,6 +3,7 @@ import { FaFilePdf, FaPlus, FaLink, FaSpinner, FaRotate } from 'react-icons/fa6'
import { databases, DATABASE_ID, COLLECTIONS } from '../lib/appwrite'
import { integrationsApi, formatMoney, INVOICE_STATUS } from '../lib/integrationsApi'
import { useInvoices } from '../hooks/useInvoices'
+import { customerStage, isInvoiceReady } from '../lib/leads'
const card = {
background: 'rgba(45, 55, 72, 0.5)',
@@ -74,7 +75,15 @@ export default function InvoicePanel({ ticket }) {
{customerError &&
{customerError}
}
- {!clientId ? (
+ {customer && customerStage(customer) === 'lead' ? (
+
+ Dieser Kunde ist noch ein Lead. Erst zum festen Kunden machen (im Kunden-Bereich, vollstaendige Daten noetig) - dann sind Rechnungen moeglich.
+
+ ) : !clientId && !isInvoiceReady(customer) ? (
+
+ Rechnungsdaten unvollstaendig. Bitte im Kunden-Bereich Unternehmen, E-Mail, Strasse, PLZ und Stadt ergaenzen.
+
+ ) : !clientId ? (
) : (
{c.name}
- {c.number ?
{c.number} : null}
+ {c.number ?
{c.number} : null}
{c.email ?
{c.email}
: null}