Kunden: Reiter "Abgesagt", Absage eintragen und Warnung vor Doppelten
- Kundenliste mit Reiter "Abgesagt" (vorher nur unter "Alle"), rotes Abzeichen, Suche auch nach Telefon - Kundenseite: "Absage eintragen" fuer Leads (Grund freiwillig); Vermerk "Abgesagt am TT.MM.JJJJ (Name): Grund" oben in die Notizen, offene Akquise-Tickets auf "Abgesagt"; roter Hinweis "nicht erneut anrufen" und "Wieder als Lead fuehren" - Neuer Lead (jetzt mit Telefon) und Neuer Kunde gleichen live mit allen Kunden ab (auch archivierte/abgesagte): Name ohne Rechtsform, E-Mail, Firmen-Domain (ohne Freemailer), Telefon; Abgesagte rot und zuerst, Knopf heisst dann "Trotzdem anlegen" - Uebersicht wird nach Speichern neu aufgebaut (key), damit kein alter Notizstand den Vermerk ueberschreibt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5d8130e8ef
commit
d2883018fc
10 files changed
+378
-23
No files matched your search
@@ -0,0 +1,31 @@
|
||||
import { Link } from 'react-router-dom'
|
||||
import { Badge } from '../ui'
|
||||
import { customerBadges, customerTitle } from '../../lib/customerList'
|
||||
import { lastRejection } from '../../lib/leadDuplicates'
|
||||
|
||||
// Hinweis in den Anlege-Formularen: diesen Betrieb gibt es schon (Abgesagte rot und zuerst).
|
||||
export default function DuplicateWarning({ matches }) {
|
||||
if (!matches || matches.length === 0) return null
|
||||
const anyLost = matches.some((m) => String(m.customer.customerStatus || '').toLowerCase() === 'lost')
|
||||
return (
|
||||
<div className={`msg ${anyLost ? 'err' : 'warn'} dup-warning`} role="alert">
|
||||
<strong>{anyLost ? 'Achtung: hat bereits abgesagt – bitte nicht erneut anrufen.' : 'Diesen Kontakt gibt es vermutlich schon.'}</strong>
|
||||
<ul className="dup-list">
|
||||
{matches.slice(0, 5).map(({ customer, reasons }) => {
|
||||
const note = lastRejection(customer.notes)
|
||||
return (
|
||||
<li key={customer.$id}>
|
||||
<Link to={`/customers/${customer.$id}`} target="_blank" rel="noreferrer">{customerTitle(customer)}</Link>{' '}
|
||||
{customerBadges(customer).map((b) => (
|
||||
<Badge key={b.key} tone={b.tone}>{b.label}</Badge>
|
||||
))}{' '}
|
||||
<span className="muted small">gleich: {reasons.join(', ')}</span>
|
||||
{note && <div className="small">{note}</div>}
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
</ul>
|
||||
{matches.length > 5 && <div className="small">… und {matches.length - 5} weitere</div>}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in new issue
Block a user