fix: Never use time descriptions as case title, only contact+date fallback (v1.3.111)

This commit is contained in:
Christian 2026-01-05 16:52:58 +01:00
parent d99d542a24
commit 1ebb1fa2cd
2 changed files with 10 additions and 30 deletions

View File

@ -1 +1 @@
1.3.110
1.3.111

View File

@ -92,7 +92,11 @@ class OrderService:
# Hent godkendte tider for kunden med case og contact detaljer
query = """
SELECT t.*,
COALESCE(c.title, c.vtiger_data->>'ticket_title', 'Ingen titel') as case_title,
COALESCE(
NULLIF(TRIM(c.title), ''),
NULLIF(TRIM(c.vtiger_data->>'ticket_title'), ''),
'Ingen titel'
) as case_title,
c.vtiger_id as case_vtiger_id,
COALESCE(c.vtiger_data->>'case_no', c.vtiger_data->>'ticket_no') as case_number,
c.vtiger_data->>'ticket_title' as vtiger_title,
@ -182,36 +186,12 @@ class OrderService:
# Use full case ID number
case_number = f"CC{vtiger_parts[1]}"
# Brug case titel fra vTiger (fallback til time entry beskrivelser)
# Brug case titel fra vTiger
case_title = group.get('case_title') or ""
# Hvis case titel er tom eller generisk, brug time entry beskrivelser
if not case_title or case_title.strip() == "" or case_title.lower() in ['none', 'ingen beskrivelse', 'ingen titel', 'no title', '']:
import re
if group['descriptions']:
# Fjern "X m" og "X t" mønstre (måneder/timer fra dato format)
clean_descriptions = []
for desc in group['descriptions']:
# Fjern mønstre som "12 m", "2 t", "/ 12 m /", etc.
cleaned = re.sub(r'[/\s]*\d+\s*[mt]\s*[/\s]*', ' ', desc, flags=re.IGNORECASE).strip()
# Fjern ekstra whitespace
cleaned = re.sub(r'\s+', ' ', cleaned).strip()
# Fjern tomme strenge eller bare punktum/komma/bindestreg
if cleaned and cleaned not in [',', '.', '-', '/', '']:
clean_descriptions.append(cleaned)
if clean_descriptions:
unique_descriptions = list(set(clean_descriptions))
if len(unique_descriptions) == 1:
case_title = unique_descriptions[0]
else:
# Hvis forskellige, join dem
case_title = ", ".join(unique_descriptions[:3]) # Max 3 for ikke at blive for lang
if len(unique_descriptions) > 3:
case_title += "..."
# Hvis stadig ingen titel, byg en fra contact_name + dato
if not case_title or case_title.strip() == "":
# Hvis case titel er generisk placeholder, brug contact + dato (IKKE descriptions)
# Descriptions bruges kun i ordre notes, ikke som titel
if not case_title or case_title.strip() == "" or case_title.lower() in ['none', 'ingen beskrivelse', 'ingen titel', 'no title']:
if group.get('contact_name'):
# Brug contact navn og dato
date_str = group.get('worked_date', '').strftime('%d.%m.%Y') if group.get('worked_date') else ''