Vis case titel fra vTiger i fakturalinje beskrivelse

This commit is contained in:
Christian 2026-01-02 15:27:46 +01:00
parent ffbaf6190a
commit 8100432079

View File

@ -127,6 +127,7 @@ class OrderService:
if case_id not in case_groups:
case_groups[case_id] = {
'case_vtiger_id': time_entry.get('case_vtiger_id'),
'case_title': time_entry.get('case_title'), # Case titel fra vTiger
'contact_name': time_entry.get('contact_name'),
'worked_date': time_entry.get('worked_date'), # Seneste dato
'is_travel': False, # Marker hvis nogen entry er rejse
@ -172,30 +173,33 @@ class OrderService:
# Take last 4 digits
case_number = f"CC{vtiger_parts[1][-4:]}"
# Brug tidsregistreringers beskrivelser som titel (filter bort dato-mønstre)
import re
case_title = "Ingen beskrivelse"
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 += "..."
# Brug case titel fra vTiger (fallback til time entry beskrivelser)
case_title = group.get('case_title') or "Ingen beskrivelse"
# Hvis case titel er tom eller generisk, brug time entry beskrivelser
if not case_title or case_title.lower() in ['none', 'ingen beskrivelse', '']:
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 += "..."
# Build description med case nummer prefix
if case_number: