Commit Graph

294 Commits

Author SHA1 Message Date
Christian
5c96639a79 Fix: Gør e-conomic product number konfigurerbar
BUG FIX:
- Hardcoded 'TIME001' eksisterer ikke i e-conomic
- Tilføjet TIMETRACKING_ECONOMIC_PRODUCT setting (default: '1000')
- Produkt nummer kan nu ændres via .env
- Fejl: Product 'TIME001' not found

LØSNING:
Tilføj til .env: TIMETRACKING_ECONOMIC_PRODUCT=XXXX
hvor XXXX er dit produkt nummer for konsulentimer i e-conomic
2025-12-23 01:11:58 +01:00
Christian
05d2ac9356 Fix: Gør e-conomic layout konfigurerbar (layout 21 er historisk)
BUG FIX:
- Hardcoded layout 21 fejler med 'Layout 21 is historic'
- Tilføjet TIMETRACKING_ECONOMIC_LAYOUT setting (default: 19)
- Layout 19 er standard dansk faktura layout
- Kan nu ændres via .env uden kode-ændringer

ERROR: e-conomic API error - layout: Layout '21' is historic
LØSNING: Brug layout 19 eller andet aktivt layout nummer
2025-12-23 01:04:44 +01:00
Christian
a98a5784b7 Fix: Return single order object ved cancel_order (ikke list)
BUG FIX:
- execute_query returnerer list, men TModuleOrder(**updated) forventede dict
- TypeError: argument after ** must be a mapping, not list
- Changed til updated[0] for at få første row
- Dette er den SIDSTE execute_query/execute_query_single bug i order_service.py

ERROR: TModuleOrder() argument after ** must be a mapping, not list
  → return TModuleOrder(**updated)
  → updated er list, skal være dict
2025-12-23 00:46:38 +01:00
Christian
776f7a52ad Fix: Tilføj manglende kolonner til tmodule_order_lines
CRITICAL BUG FIX:
- case_contact, time_date, is_travel manglede i tmodule_order_lines tabel
- Forårsagede SQL fejl ved order creation INSERT
- Opdateret migration 031 til at tilføje alle manglende kolonner
- Applied direkte på production DB

ERROR: column 'case_contact' does not exist
  → INSERT INTO tmodule_order_lines ... case_contact, time_date, is_travel
2025-12-23 00:33:28 +01:00
Christian
0fdf4549d6 Fix: Tilføj RETURNING id til order INSERT statements
CRITICAL BUG FIX:
- execute_insert() kalder cursor.fetchone() men INSERT havde ingen RETURNING clause
- Forårsagede '500: no results to fetch' ved order oprettelse
- Tilføjet RETURNING id til:
  * tmodule_orders INSERT (linje 222)
  * tmodule_order_lines INSERT (linje 240)
- Opdateret database.py docstring til at gøre RETURNING requirement klart

ERROR: ProgrammingError - no results to fetch
  → INSERT INTO tmodule_orders ... VALUES (...)
  → Manglede RETURNING id
2025-12-23 00:29:25 +01:00
Christian
718de1a6bd Fix: Remove hourly_rate query from customers table (kolonne eksisterer ikke)
BUG FIX:
- _get_hourly_rate() tried to query hourly_rate from customers table
- customers table har ikke hourly_rate kolonne
- Forårsagede '500: no results to fetch' fejl ved order oprettelse
- Changed execute_query_single → execute_query for tmodule_customers check
- Removed hub customer rate check (ikke relevant)
- Falls back til default rate fra settings

ERROR: SELECT hourly_rate FROM customers WHERE id = 512
       → column 'hourly_rate' does not exist
2025-12-23 00:23:01 +01:00
Christian
152670b4b2 Fix: Tilføj manglende is_travel og hourly_rate kolonner til tmodule_times
CRITICAL BUG FIX:
- Approval endpoint fejlede fordi is_travel kolonne ikke eksisterede i DB
- Koden referenced is_travel men migration var aldrig kørt
- Tilføjet is_travel (BOOLEAN DEFAULT false)
- Tilføjet hourly_rate (DECIMAL(10,2)) til times tabel
- Testet: Approval virker nu korrekt (entry 1225 godkendt)

RODSAG:
- User kunne ikke godkende timer fordi SQL fejlede med 'column does not exist'
- Dette forklarer hvorfor 0 entries nogensinde er blevet approved i systemet
2025-12-23 00:16:32 +01:00
Christian
0205516422 Cleanup: Fjernet duplikat order check i cancel_order 2025-12-22 22:20:20 +01:00
Christian
dd23312731 Fix: Flere steder i order_service brugte execute_query_single forkert 2025-12-22 17:13:10 +01:00
Christian
0d9af55dfc Fix: Timetracking ordre generering brugte execute_query_single i stedet for execute_query 2025-12-22 16:57:52 +01:00
Christian
3628cbd9fe Fix: Kontakt detail viser nu relaterede firmaer i Firmaer fanen 2025-12-22 16:40:49 +01:00
Christian
d2c7a8a624 Fix: SQL ambiguous column error i contacts søgning - prefikseret med c. 2025-12-22 16:04:49 +01:00
Christian
9fe17e7f85 Fix: Tilføjet company_count og company_names til contacts API med JOIN 2025-12-22 15:48:21 +01:00
Christian
ba0a2fd160 Fix: Ændret debug endpoint path for at undgå conflict 2025-12-22 15:43:47 +01:00
Christian
bd2de09076 Add: Debug endpoint for contact-company links 2025-12-22 15:35:26 +01:00
Christian
5bb6e73a26 Fix: Contacts query skulle returnere alle rækker ikke kun én 2025-12-22 15:29:28 +01:00
Christian
e4b940009f Feature: Auto-create customers from vTiger accounts when linking contacts 2025-12-22 15:20:29 +01:00
Christian
e541758c44 Add: Sync diagnostics endpoint for troubleshooting contact linking 2025-12-22 15:14:31 +01:00
Christian
6d949d7060 Refactor: Komplet omskrivning af kontakt sync med simpel logik 2025-12-22 15:05:40 +01:00
Christian
0fb404dff5 Fix: Rettet indentation fejl i kontakt linking kode 2025-12-22 14:41:44 +01:00
Christian
0b8a4ff5d0 Debug: Rettet debug logging counter for kontakter 2025-12-22 14:36:55 +01:00
Christian
82ecfda404 Debug: Tilføjet logging af account_id værdier for kontakter 2025-12-22 14:34:07 +01:00
Christian
6398a7ca5f Debug: Ændret logging level for kontakt linking fejl (debug → info) 2025-12-22 14:25:41 +01:00
Christian
ddcf64ae78 Fix: Tjek for duplicate vtiger_id før update (undgår constraint violation) 2025-12-22 14:15:17 +01:00
Christian
0b6d286332 Debug: Tilføjet bedre logging til vTiger matching for at identificere problem 2025-12-22 14:13:44 +01:00
Christian
64935b5808 Fix: Tilføjet pagination til kontakter + forbedret relation linking 2025-12-22 13:24:41 +01:00
Christian
62fc3cb4dd Fix: Check for existing customer by CVR også (undgå duplicate key error) 2025-12-22 13:18:36 +01:00
Christian
198c6c56f4 Fix: Truncate country code til max 2 chars (ISO format) 2025-12-22 13:17:03 +01:00
Christian
4042c466f8 Fix: Rettet podman logs syntax og tilføjet sync commands til output 2025-12-22 13:15:13 +01:00
Christian
6917bbff68 Fix: Opdateret guide - download script fra Gitea i stedet for git pull 2025-12-22 13:13:45 +01:00
Christian
c08ebedaf5 Add: Quick update guide til første deployment af updateto.sh 2025-12-22 13:12:06 +01:00
Christian
bcd7f7384a Add: Deployment script med server validation check 2025-12-22 13:07:32 +01:00
Christian
a9f5714662 Feature: Omstruktureret sync - e-conomic er nu primær kilde, vTiger linker bagefter 2025-12-22 13:02:24 +01:00
Christian
e5dc0f64d3 Fix: Rettet vTiger pagination - bruger ID-baseret filtering i stedet for LIMIT OFFSET 2025-12-22 12:59:12 +01:00
Christian
94781227b2 Fix: Implementeret pagination i vTiger sync for at hente ALLE kunder (batch size 200) 2025-12-22 12:53:11 +01:00
Christian
af6e868828 Fix: Tilføjet manglende VTIGER_ENABLED og ECONOMIC_ENABLED fields i Settings 2025-12-22 11:44:13 +01:00
Christian
187b72238d Fix: Fjernet LIMIT fra vTiger sync for at hente ALLE kunder og kontakter 2025-12-22 11:39:07 +01:00
Christian
e8be92d187 Fix: CVR unique constraint - tillad multiple kunder uden CVR nummer 2025-12-22 11:35:16 +01:00
Christian
41f7ae991c Fix: Rettet test-economic endpoint - fjernet ikke-eksisterende get_self() kald 2025-12-22 11:17:36 +01:00
Christian
7fd596612c Feature: Tilføjet /api/v1/system/test-economic endpoint til at teste e-conomic API forbindelse 2025-12-22 11:15:16 +01:00
Christian
35447cbd4f Feature: Tilføjet /api/v1/settings/sync-from-env endpoint til at synkronisere .env værdier ind i settings database 2025-12-22 11:04:09 +01:00
Christian
180ae7f650 Fix: Tilføjet manglende msal dependency til email service 2025-12-22 11:01:30 +01:00
Christian
c5ce819a15 Fix: Rettet typo i e-conomic sync (verifiot_matched_count → verified_count) og tilføjet not_matched til return value 2025-12-22 10:48:04 +01:00
Christian
8b71524437 Add verified count to e-conomic sync (separate new matches from existing verifications) 2025-12-19 16:56:39 +01:00
Christian
030071e8d5 Improve e-conomic sync: Only match new customers, verify existing ones 2025-12-19 16:54:57 +01:00
Christian
5d8617bed3 Fix: Add pagination for e-conomic customers (max 1000 per page) 2025-12-19 16:53:39 +01:00
Christian
f6303fa804 Fix: Change Customer schema datetime fields to str for proper serialization 2025-12-19 16:45:22 +01:00
Christian
c9af509e1c Implement e-conomic customer sync and CVR search (get_customers + search_customer_by_cvr) 2025-12-19 16:41:11 +01:00
Christian
55478c20d3 Add detailed sync logging with precise changes (oprettet/opdateret/linket med firma/CVR info) 2025-12-19 16:36:41 +01:00
Christian
c8e005dd07 Fix: Only fetchall() when query has RETURNING clause or is SELECT 2025-12-19 16:30:03 +01:00