fix: Never use time descriptions as case title, only contact+date fallback (v1.3.111)
This commit is contained in:
parent
d99d542a24
commit
1ebb1fa2cd
@ -92,7 +92,11 @@ class OrderService:
|
|||||||
# Hent godkendte tider for kunden med case og contact detaljer
|
# Hent godkendte tider for kunden med case og contact detaljer
|
||||||
query = """
|
query = """
|
||||||
SELECT t.*,
|
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,
|
c.vtiger_id as case_vtiger_id,
|
||||||
COALESCE(c.vtiger_data->>'case_no', c.vtiger_data->>'ticket_no') as case_number,
|
COALESCE(c.vtiger_data->>'case_no', c.vtiger_data->>'ticket_no') as case_number,
|
||||||
c.vtiger_data->>'ticket_title' as vtiger_title,
|
c.vtiger_data->>'ticket_title' as vtiger_title,
|
||||||
@ -182,36 +186,12 @@ class OrderService:
|
|||||||
# Use full case ID number
|
# Use full case ID number
|
||||||
case_number = f"CC{vtiger_parts[1]}"
|
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 ""
|
case_title = group.get('case_title') or ""
|
||||||
|
|
||||||
# Hvis case titel er tom eller generisk, brug time entry beskrivelser
|
# Hvis case titel er generisk placeholder, brug contact + dato (IKKE descriptions)
|
||||||
if not case_title or case_title.strip() == "" or case_title.lower() in ['none', 'ingen beskrivelse', 'ingen titel', 'no title', '']:
|
# Descriptions bruges kun i ordre notes, ikke som titel
|
||||||
import re
|
if not case_title or case_title.strip() == "" or case_title.lower() in ['none', 'ingen beskrivelse', 'ingen titel', 'no title']:
|
||||||
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() == "":
|
|
||||||
if group.get('contact_name'):
|
if group.get('contact_name'):
|
||||||
# Brug contact navn og dato
|
# Brug contact navn og dato
|
||||||
date_str = group.get('worked_date', '').strftime('%d.%m.%Y') if group.get('worked_date') else ''
|
date_str = group.get('worked_date', '').strftime('%d.%m.%Y') if group.get('worked_date') else ''
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user