Vis case titel fra vTiger i fakturalinje beskrivelse
This commit is contained in:
parent
ffbaf6190a
commit
8100432079
@ -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:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user