Commit Graph

155 Commits

Author SHA1 Message Date
Christian
1b48e659a8 feat: Show 12-month matrix with empty cells for missing invoices
- Generate all 12 months automatically (last 12 months from today)
- Display empty cells with 'missing' status for months without invoices
- Makes it easy to spot billing gaps
- Empty cells show 0 kr and null invoice_number
2026-01-26 17:17:14 +01:00
Christian
1f5d6a8536 fix: Add ALLOWED_EXTENSIONS config for file uploads
- Added ALLOWED_EXTENSIONS setting to core config
- Supports PDF, images, documents, and archives
- Fixes supplier invoice upload validation error
- Added configuration to .env.example
2026-01-26 17:07:17 +01:00
Christian
6b7b63f7d7 feat: Add Abonnements Matrix feature with e-conomic invoice aggregation
- New SubscriptionMatrixService for billing matrix generation
- Products grouped by product number with monthly aggregation
- Support for archived, draft, sent, booked, paid, unpaid invoices
- Fixed amount calculation with fallback logic (grossAmount, unitNetPrice)
- Status mapping based on invoice type (draft, invoiced, paid)
- Frontend tab on customer detail page with dynamic table rendering
- Fixed Blåhund customer economic number linking
2026-01-25 14:46:00 +01:00
Christian
3dcd04396e feat(webshop): Initial implementation of webshop module with views, migrations, and templates
- Added views for webshop admin interface using FastAPI and Jinja2 templates.
- Created initial SQL migration for webshop configurations, products, orders, and order items.
- Defined module metadata in module.json for webshop.
- Implemented HTML template for the webshop index page.
- Documented frontend requirements and API contracts in WEBSHOP_FRONTEND_PROMPT.md.
- Introduced scripts for generating conversation summaries and testing Whisper capabilities.
2026-01-25 03:29:28 +01:00
Christian
eacbd36e83 feat: Implement Transcription Service for audio files using Whisper API
- Added `transcription_service.py` to handle audio transcription via Whisper API.
- Integrated logging for transcription processes and error handling.
- Supported audio format checks based on configuration settings.

docs: Create Ordre System Implementation Plan

- Drafted comprehensive implementation plan for e-conomic order integration.
- Outlined business requirements, database changes, backend and frontend implementation details.
- Included testing plan and deployment steps for the new order system.

feat: Add AI prompts and regex action capabilities

- Created `ai_prompts` table for storing custom AI prompts.
- Added regex extraction and linking action to email workflow actions.

feat: Introduce conversations module for transcribed audio

- Created `conversations` table to store transcribed conversations with relevant metadata.
- Added indexing for customer, ticket, and user linkage.
- Implemented full-text search capabilities for Danish language.

fix: Add category column to conversations for classification

- Added `category` column to `conversations` table for better conversation classification.
2026-01-11 19:23:21 +01:00
Christian
f62cd8104a feat: Enhance time tracking with Hub Worklog integration and editing capabilities
- Added hub_customer_id to TModuleApprovalStats for better tracking.
- Introduced TModuleWizardEditRequest for editing time entries, allowing updates to description, hours, and billing method.
- Implemented approval and rejection logic for Hub Worklogs, including handling negative IDs.
- Created a new endpoint for updating entry details, supporting both Hub Worklogs and Module Times.
- Updated frontend to include an edit modal for time entries, with specific fields for Hub Worklogs and Module Times.
- Enhanced customer statistics retrieval to include pending counts from Hub Worklogs.
- Added migrations for ticket enhancements, including new fields and constraints for worklogs and prepaid cards.
2026-01-10 21:09:29 +01:00
Christian
a1d4696005 feat: Add new time tracking wizard and registrations view
- Implemented a new simplified time tracking wizard (wizard2) for approval processes.
- Added a registrations view to list all time tracking entries.
- Enhanced the existing wizard.html to include a billable checkbox for entries.
- Updated JavaScript logic to handle billable state and travel status for time entries.
- Introduced a cleanup step in the deployment script to remove old images.
- Created a new HTML template for registrations with filtering and pagination capabilities.
2026-01-10 01:37:08 +01:00
Christian
19827d03a8 feat: Enhance time tracking by excluding billed entries from views and approval processes 2026-01-09 08:01:28 +01:00
Christian
ccb7714779 feat: Implement tracking of billed Hub order ID for time entries and update related services 2026-01-08 18:57:04 +01:00
Christian
cbcd0fe4e7 feat: Implement data consistency checking system for customer data across BMC Hub, vTiger, and e-conomic
- Added CustomerConsistencyService to compare and sync customer data.
- Introduced new API endpoints for data consistency checks and field synchronization.
- Enhanced customer detail page with alert for discrepancies and modal for manual syncing.
- Updated vTiger and e-conomic services to support fetching and updating customer data.
- Added configuration options for enabling/disabling sync operations and automatic checks.
- Implemented data normalization and error handling for robust comparisons.
- Documented the new system and its features in DATA_CONSISTENCY_SYSTEM.md.
2026-01-08 18:28:00 +01:00
Christian
c855f5d027 feat(migrations): add supplier invoice enhancements for accounting integration
- Added new columns to supplier_invoice_lines for contra_account, line_purpose, resale_customer_id, resale_order_number, is_invoiced_to_customer, and invoiced_date.
- Created indexes for faster filtering by purpose and resale status.
- Introduced economic_accounts table to cache e-conomic chart of accounts with relevant fields and indexes.
- Added comments for documentation on new columns and tables.
- Included success message for migration completion.
2026-01-07 10:32:41 +01:00
Christian
ca53573952 feat: Enhance email processing and backup scheduling
- Added PostgreSQL client installation to Dockerfile for database interactions.
- Updated BackupScheduler to manage both backup jobs and email fetching jobs.
- Implemented email fetching job with logging and error handling.
- Enhanced the frontend to display scheduled jobs, including email fetch status.
- Introduced email upload functionality with drag-and-drop support and progress tracking.
- Added import_method tracking to email_messages for better source identification.
- Updated email parsing logic for .eml and .msg files, including attachment handling.
- Removed obsolete email scheduler service as functionality is integrated into BackupScheduler.
- Updated requirements for extract-msg to the latest version.
- Created migration script to add import_method column to email_messages table.
2026-01-06 15:11:28 +01:00
Christian
1f21ad2ec1 fix: Correct BMC Office router file structure 2026-01-06 13:17:28 +01:00
Christian
08fd2a04c7 feat: Complete activity logging system - customer CRUD, contacts, subscriptions, BMC Office 2026-01-06 13:16:25 +01:00
Christian
af044a7be8 feat: Add comprehensive customer activity logging for all CRUD operations 2026-01-06 13:12:46 +01:00
Christian
50fbb5ab92 feat: Add activity logging for BMC Office subscription imports 2026-01-06 12:54:10 +01:00
Christian
2419ddc5d8 fix: Allow external navigation from settings menu 2026-01-06 08:45:36 +01:00
Christian
c7986b0abf feat: Add BMC Office Import link to admin menu 2026-01-06 08:43:30 +01:00
Christian
bd746b7f9c feat: Add BMC Office subscriptions Excel upload interface with auto customer mapping 2026-01-06 08:21:24 +01:00
Christian
da5ec19188 fix: Use execute_query instead of execute_query_single to return all customer contacts 2026-01-05 19:03:34 +01:00
Christian
935d2253f7 fix: Move order number from heading to otherReference field only 2026-01-05 18:56:24 +01:00
Christian
3195afe460 fix: Only use case_no from vtiger_data, never parse from vtiger_id (v1.3.116) 2026-01-05 17:17:46 +01:00
Christian
34ca9fca93 fix: Prioritize 'title' field over 'ticket_title' from vTiger (v1.3.115) 2026-01-05 17:16:44 +01:00
Christian
99eac06cfd fix: Wizard shows case title instead of case_no (v1.3.114) 2026-01-05 17:12:41 +01:00
Christian
0974f41bd1 feat: Add endpoint to fix empty case titles from vtiger_data (v1.3.113) 2026-01-05 17:06:44 +01:00
Christian
0b9765c5a2 fix: Use 'title' field from vTiger Cases as fallback for ticket_title (v1.3.112) 2026-01-05 16:56:28 +01:00
Christian
1ebb1fa2cd fix: Never use time descriptions as case title, only contact+date fallback (v1.3.111) 2026-01-05 16:52:58 +01:00
Christian
d99d542a24 fix: Use contact name + date as case title fallback (v1.3.110) 2026-01-05 16:44:18 +01:00
Christian
1e45ec70bf fix: Better case title fallback logic - use descriptions or 'Arbejde' (v1.3.109) 2026-01-05 16:43:16 +01:00
Christian
11f9e97c1d fix: Use case_no from vtiger_data for order case numbers (v1.3.108) 2026-01-05 16:34:13 +01:00
Christian
9336edd5cc feat: Add manual customer linking endpoint (v1.3.106) 2026-01-05 14:15:04 +01:00
Christian
fa55e6b98e Fix: Simply-CRM sync opretter nu manglende customers i Hub (ikke kun opdaterer eksisterende) 2026-01-05 12:35:02 +01:00
Christian
5e66ef6563 Add: Customer linking verification endpoint med health score og anbefalinger 2026-01-05 11:34:39 +01:00
Christian
05ec5b5903 Fix: Brug economic_acc_number field fra Simply-CRM (ikke account_no) 2026-01-05 11:28:45 +01:00
Christian
1380369dff Add: Sync e-conomic customer numbers fra Simply-CRM + auto-link timetracking customers 2026-01-05 11:08:49 +01:00
Christian
24a517a10c Fix: Brug fuldt case ID (ikke kun sidste 4 cifre) + auto-link kunder efter vTiger sync 2026-01-05 10:56:32 +01:00
Christian
68eb1d31d1 Fix: Bedre case title fallback og klarere fejlbesked for manglende customer linking 2026-01-05 10:42:57 +01:00
Christian
e69f211fbf Fix: Vis kun den specifikke entry når time_id parameter er sat 2026-01-02 16:53:25 +01:00
Christian
d76296ea73 Fix: Fjern duplicate loadNextEntry() call der overskriver currentEntry 2026-01-02 16:50:40 +01:00
Christian
d704a2f780 Debug: Tilføj console.log for at tracke entry loading i wizard 2026-01-02 16:40:03 +01:00
Christian
1c12014c5a Fix: Load specific entry viser nu korrekt entry selv hvis den ikke er pending 2026-01-02 16:34:59 +01:00
Christian
0b06276963 Fix: displayCaseEntries viser nu korrekt den ønskede entry i stedet for altid første entry 2026-01-02 16:25:13 +01:00
Christian
26fda2e419 Fix: Brug korrekt funktion og setup til at vise specifik time entry i wizard 2026-01-02 16:17:46 +01:00
Christian
1356c251e9 Fix: Tilføj manglende except block i get_customer_time_entries 2026-01-02 16:08:59 +01:00
Christian
bf72fc4a49 Fix: Wizard kan nu hoppe direkte til specifik tidsregistrering via time_id parameter 2026-01-02 15:53:00 +01:00
Christian
8100432079 Vis case titel fra vTiger i fakturalinje beskrivelse 2026-01-02 15:27:46 +01:00
Christian
ffbaf6190a Fjern oprundingsinfo fra fakturalinje beskrivelse 2026-01-02 15:17:46 +01:00
Christian
acc89d9f09 Fix: Fjern dato-mønstre fra fakturalinjer + vis oprunding i minutter 2026-01-02 15:12:05 +01:00
Christian
cbc05b52ce fix: Use execute_query_single for case details (v1.3.83)
- Fix get_case_details using execute_query instead of execute_query_single
- execute_query returns list, execute_query_single returns dict
- Prevents 500 error when loading case details
2026-01-02 13:01:20 +01:00
Christian
45d4f78006 debug: Add detailed logging to approval flow (v1.3.82)
- Add logging before approval object creation
- Add logging after approval object creation
- Add logging before database update
- Add logging after database update
- Add time_id to error messages
- This will help diagnose 500 errors on production
2026-01-02 12:58:53 +01:00