Commit Graph

58 Commits

Author SHA1 Message Date
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
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
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
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
Christian
3f66bd07e6 Fix: Remove WHERE clauses and cf_854 field from vTiger queries (API doesn't support empty string comparison) 2025-12-19 15:34:49 +01:00
Christian
8bc633d59c Fix: Convert vTiger SQL queries to single-line (API requires no line breaks) 2025-12-19 15:28:25 +01:00
Christian
c2cf8cf5a3 Enhance sync logging with detailed stats (behandlet/oprettet/opdateret/sprunget over) 2025-12-19 15:19:36 +01:00
Christian
ed0491c567 Add showNotification function for sync alerts 2025-12-19 13:24:16 +01:00
Christian
6e2a32165e Fix: Close tags grid div properly in settings
Missing closing div tag and malformed comment caused sync tab to be empty
2025-12-19 13:12:33 +01:00
Christian
7c69cb22e7 Feature: Add sync page to settings
- Add Sync navigation tab in settings
- Sync UI with status cards (total, vTiger, e-conomic)
- Action cards for vTiger and e-conomic sync
- Sync log with real-time updates
- JavaScript functions for sync operations
- Backend sync router with vTiger account sync
- Backend vTiger contacts sync with customer linking
- Placeholder for e-conomic sync (needs get_customers method)
- Name normalization for company matching
- CVR number matching and validation
2025-12-19 13:09:42 +01:00
Christian
a011f36385 Feature: Add tags administration to settings page
- Add Tags navigation tab in settings
- Modern card-based grid layout for tags
- Quick stats dashboard (6 KPI cards)
- Smart filtering (type + inactive toggle)
- Create/Edit/Delete functionality
- Color picker with hex input sync
- Auto-color suggestion based on tag type
- Bootstrap Icons selector
- Responsive 3-column layout
2025-12-19 08:06:56 +01:00
Christian
15f39f13ce Fix: Replace execute_query_single with execute_query in email router
execute_query_single function does not exist in database module.
All calls should use execute_query instead.
2025-12-19 07:56:05 +01:00
Christian
fdac8b855e Fix: Strip whitespace from env vars before validation
Pydantic cannot parse 'true   ' (with trailing spaces) as boolean.
Added field_validator to automatically strip whitespace from all string inputs.
2025-12-17 20:58:01 +01:00
Christian
2361bd2277 Fix: Add missing env vars to Settings class and remove inline comments from .env
- Added API_RELOAD, CORS_ORIGINS to Settings
- Added deployment-specific vars: POSTGRES_*, RELEASE_VERSION, GITEA_URL, GITHUB_TOKEN, GITHUB_REPO
- Removed inline comments from boolean values (Pydantic can't parse them)
- Updated CORS middleware to use CORS_ORIGINS with fallback to ALLOWED_ORIGINS
2025-12-17 17:28:50 +01:00
Christian
84485bd294 feat: Implement ticket contacts management with flexible roles and CRUD operations 2025-12-17 16:38:08 +01:00
Christian
0502a7b080 feat: Implement central tagging system with CRUD operations, entity tagging, and workflow management
- Added API endpoints for tag management (create, read, update, delete).
- Implemented entity tagging functionality to associate tags with various entities.
- Created workflow management for tag-triggered actions.
- Developed frontend views for tag administration using FastAPI and Jinja2.
- Designed HTML template for tag management interface with Bootstrap styling.
- Added JavaScript for tag picker component with keyboard shortcuts and dynamic tag filtering.
- Created database migration scripts for tags, entity_tags, and tag_workflows tables.
- Included default tags for initial setup in the database.
2025-12-17 07:56:33 +01:00
Christian
fadf7258de feat: Implement internal comments for customer subscriptions with database support 2025-12-16 22:07:20 +01:00
Christian
ffb3d335bc feat: Add Simply-CRM integration setup documentation and configuration details
docs: Create vTiger & Simply-CRM integration setup guide with credential requirements

feat: Implement ticket system enhancements including relations, calendar events, templates, and AI suggestions

refactor: Update ticket system migration to include audit logging and enhanced email metadata
2025-12-16 15:36:11 +01:00
Christian
3806c7d011 feat(ticket-module): Implement ticket system with comprehensive database schema, permissions, and testing suite
- Added migration 025 for the Ticket System, creating tables for tickets, comments, attachments, worklogs, prepaid cards, and audit logs.
- Introduced migration 026 to add ticket-related permissions to the auth system and assign them to user groups.
- Developed a test suite for the Ticket Module, validating database schema, ticket number generation, prepaid card constraints, service logic, worklog creation, audit logging, and views.
2025-12-15 23:40:23 +01:00
Christian
3fb43783a6 feat: Implement Email Workflow System with comprehensive documentation and migration scripts
- Added Email Workflow System with automated actions based on email classification.
- Created database schema with tables for workflows, executions, and actions.
- Developed API endpoints for CRUD operations on workflows and execution history.
- Included pre-configured workflows for invoice processing, time confirmation, and bankruptcy alerts.
- Introduced user guide and workflow system improvements for better usability.
- Implemented backup system for automated backup jobs and notifications.
- Established email activity log to track all actions and events related to emails.
2025-12-15 12:28:12 +01:00
Christian
38fa3b6c0a feat: Add subscriptions lock feature to customers
- Added a new column `subscriptions_locked` to the `customers` table to manage subscription access.
- Implemented a script to create new modules from a template, including updates to various files (module.json, README.md, router.py, views.py, and migration SQL).
- Developed a script to import BMC Office subscriptions from an Excel file into the database, including error handling and statistics reporting.
- Created a script to lookup and update missing CVR numbers using the CVR.dk API.
- Implemented a script to relink Hub customers to e-conomic customer numbers based on name matching.
- Developed scripts to sync CVR numbers from Simply-CRM and vTiger to the local customers database.
2025-12-13 12:06:28 +01:00
Christian
361f2fad5d feat: Implement vTiger integration for subscriptions and sales orders
- Added a new VTigerService class for handling API interactions with vTiger CRM.
- Implemented methods to fetch customer subscriptions and sales orders.
- Created a new database migration for BMC Office subscriptions, including table structure and view for totals.
- Enhanced customer detail frontend to display subscriptions and sales orders with improved UI/UX.
- Added JavaScript functions for loading and displaying subscription data dynamically.
- Created tests for vTiger API queries and field inspections to ensure data integrity and functionality.
2025-12-11 23:14:20 +01:00
Christian
c4c9b8a04a feat: Enhance email actions UI with improved layout and attachment handling 2025-12-11 12:57:14 +01:00
Christian
7f325b5c32 feat: Implement email management UI with FastAPI and keyword-based classification
- Added FastAPI router for serving email management UI at /emails
- Created Jinja2 template for the email frontend
- Developed SimpleEmailClassifier for keyword-based email classification
- Documented email UI implementation details, features, and API integration in EMAIL_UI_IMPLEMENTATION.md
2025-12-11 12:45:29 +01:00
Christian
8791e34f4e feat: Implement email processing system with scheduler, fetching, classification, and rule matching
- Added EmailProcessorService to orchestrate email workflow: fetching, saving, classifying, and matching rules.
- Introduced EmailScheduler for background processing of emails every 5 minutes.
- Developed EmailService to handle email fetching from IMAP and Microsoft Graph API.
- Created database migration for email system, including tables for email messages, rules, attachments, and analysis.
- Implemented AI classification and extraction for invoices and time confirmations.
- Added logging for better traceability and error handling throughout the email processing pipeline.
2025-12-11 02:31:29 +01:00
Christian
a230071632 feat: Add customer time pricing management page with dynamic features
- Implemented a new HTML page for managing customer time pricing with Bootstrap styling.
- Added navigation and responsive design elements.
- Integrated JavaScript for loading customer data, editing rates, and handling modals for time entries and order creation.
- Included theme toggle functionality and statistics display for customer rates.
- Enhanced user experience with toast notifications for actions performed.

docs: Create e-conomic Write Mode guide

- Added comprehensive documentation for exporting approved time entries to e-conomic as draft orders.
- Detailed safety flags for write operations, including read-only and dry-run modes.
- Provided activation steps, error handling, and best practices for using the e-conomic integration.

migrations: Add user_company field to contacts and e-conomic customer number to customers

- Created migration to add user_company field to contacts for better organization tracking.
- Added e-conomic customer number field to tmodule_customers for invoice export synchronization.
2025-12-10 18:29:13 +01:00
Christian
34555d1e36 feat(timetracking): Implement time tracking module with frontend views, HTML templates, and database migrations
- Added FastAPI router for time tracking views including dashboard, wizard, and orders.
- Created HTML templates for the time tracking wizard with responsive design and Bootstrap integration.
- Developed SQL migration script for the time tracking module, including tables for customers, cases, time entries, orders, and audit logs.
- Introduced a script to list all registered routes, focusing on time tracking routes.
- Added test script to verify route registration and specifically check for time tracking routes.
2025-12-09 22:46:30 +01:00
Christian
3a8288f5a1 feat: Implement quick analysis on PDF upload for CVR, document type, and number extraction
- Added `check_invoice_number_exists` method in `EconomicService` to verify invoice numbers in e-conomic journals.
- Introduced `quick_analysis_on_upload` method in `OllamaService` for extracting critical fields from uploaded PDFs, including CVR, document type, and document number.
- Created migration script to add new fields for storing detected CVR, vendor ID, document type, and document number in the `incoming_files` table.
- Developed comprehensive tests for the quick analysis functionality, validating CVR detection, document type identification, and invoice number extraction.
2025-12-09 14:54:33 +01:00