Commit Graph

359 Commits

Author SHA1 Message Date
Christian
be68148448 feat(email): add RETURNING id to email activity log insert
feat(ollama): implement case creation rewrite with strict rules

fix(sync): include phone number in economic customer sync

fix(migrations): clean up orphan links before enforcing foreign keys in email threading schema

feat(migrations): add support for physical patch-panel layouts and update related constraints

feat(migrations): add start port number for physical patch panels

feat(migrations): introduce display order for physical panels

feat(migrations): link wall outlets to switch hardware

feat(migrations): allow optional label and customer for wall outlets

feat(migrations): create hardware network links table

feat(migrations): add location display order for hardware assets

feat(migrations): create UISP devices and link to hardware assets
2026-07-18 10:10:31 +02:00
Christian
d4d9ac22a5 feat: add locations outlet and cross-field management 2026-07-17 10:23:57 +02:00
Christian
0655b4c4f8 feat: Enhance opportunity listing and invoice error finder functionality
- Added customer_id and contact_id filters to the list_opportunities endpoint for improved querying.
- Implemented a redirect for opportunity detail pages to a new format.
- Refactored SubscriptionMatrixService to load invoices from a local snapshot instead of an external service, improving performance and reliability.
- Updated settings to include 'pipeline' as a case type and added a new section for managing ignored product texts in the invoice error finder.
- Introduced a new user_sag_create_preferences table to store per-user default case types for new cases.
- Enhanced frontend settings page with invoice error finder configuration options and improved handling of ignored product texts.
- Added migrations to support new features, including resolved status for invoice error finder issues and user-specific case type preferences.
2026-07-17 01:58:02 +02:00
Christian
db2e8c3157 chore(release): bump version to 2.3.30 2026-07-11 11:48:42 +02:00
Christian
b91f9fcc2d chore(release): bump version to 2.3.29 2026-07-11 11:45:24 +02:00
Christian
48f7b80c49 chore(release): bump version to 2.3.26 2026-07-10 16:22:57 +02:00
Christian
ca23ac1f2b chore(release): bump version to 2.3.25 2026-07-10 08:10:31 +02:00
Christian
128a2b83d0 feat(invoice_error_finder): add invoice error finder module
- Detect missing invoice lines, open orders not invoiced, quantity drops, price changes
- Import e-conomic invoices and Simply CRM sales orders
- Dashboard and issues UI with sag/ordre-draft actions
- Scheduled daily sync job at 05:00
- Add invoice_error_finder permissions
2026-07-10 07:08:49 +02:00
Christian
3311b8e590 Add comprehensive tests for internet connections module, invoice parsing, and subscription provisioning
- Implement tests for the internet connections module, covering routes, IP range creation, and connection validation.
- Add tests for the Invoice2DataService to validate extraction from GlobalConnect invoices.
- Create tests for subscription network provisioning, ensuring proper handling of network items and IP allocations.
- Include validation checks for subtotal mismatches and ensure error handling for missing IP selections.
2026-07-09 23:44:30 +02:00
Christian
8e99453dea chore(release): bump version to 2.3.23 2026-07-03 20:20:22 +02:00
Christian
8710f7f798 feat(drift): add Drift module with frontend and backend components
- Implemented the Drift module with a new FastAPI router and HTML templates for the frontend.
- Created database tables for drift sources, devices, events, event history, and customer mappings.
- Added functionality to manage and display drift events, including filtering and bulk mapping of monitors to customers.
- Introduced tests for the Drift module, covering various functionalities including event blacklisting and UISP connector configuration.
- Enhanced Telefoni service tests to ensure proper call termination handling.
2026-06-26 14:15:46 +02:00
Christian
4822637466 feat: add time multiplier presets management and extend worklog model
- Added a new section in the settings frontend for managing time multiplier presets, including UI for adding, displaying, and saving presets.
- Introduced a new function to normalize and load time multiplier presets from settings.
- Updated the worklog submission process to include a selected multiplier preset and its corresponding rate multiplier.
- Enhanced the worklog model to support additional fields: extra_billed_hours, extended_support_flag, rate_multiplier, manual_hourly_rate, manual_rounded_hours, and rounding_override_reason.
- Implemented backend validation to ensure that time entries linked to prepaid cards cannot be edited if the card is in a locked status.
- Added database migration to introduce new columns and constraints for the worklog and time entry tables.
2026-06-21 10:26:07 +02:00
Christian
a604a3cc44 Add comprehensive test suite for vTiger integration and ticket module
- Implemented test scripts for vTiger account retrieval, contact data, and modules.
- Created a detailed test suite for the ticket module, covering database schema validation, ticket number generation, prepaid card constraints, and service logic.
- Added tests for vTiger field inspection and various queries related to accounts and sales orders.
- Introduced SQL migration scripts for the ALSO Cloud Billing foundation, including import jobs, lines, and mapping tables with necessary constraints and indices.
- Enhanced workflow columns in the import lines table to support matching and validation timestamps.
2026-06-20 03:29:51 +02:00
Christian
ce75f12f56 feat: integrate bug reporting module and enhance screenshot functionality
- Added bug reporting API router to main application.
- Enhanced screenshot functionality in bug-report.js with timeout handling and dynamic loading of html2canvas library.
- Improved screenshot capture strategies and error handling for better user experience.
- Updated modal handling for bug reports to include screenshot previews and status messages.
- Refactored code for better readability and maintainability.

feat: implement user-specific case status and preferences

- Created migration to allow dynamic case statuses in sag_sager table.
- Added user_sag_list_preferences table for per-user preferences on case list filters.
- Introduced user_menu_preferences table to manage per-user menu visibility preferences with triggers for updated_at timestamps.
2026-06-18 22:20:39 +02:00
Christian
9dfa7ca936 Restore VOIP popup by allowing cookie-auth websocket fallback 2026-06-11 12:38:40 +02:00
Christian
96f4a36724 Handle missing supplier_invoices.sag_id in supplier invoice listing 2026-06-11 09:45:11 +02:00
Christian
f4bc2828e8 Fix case status save on v3 detail by binding inline onchange fallback 2026-06-11 09:34:02 +02:00
Christian
fd8f4d6d88 Fix case status update: use Body() to properly parse JSON request body for PATCH endpoints 2026-06-11 01:38:55 +02:00
Christian
5f2452f222 Fix email routing and contact search 2026-06-11 01:12:25 +02:00
Christian
592ed8640d feat(telefoni): enhance call handling with external number normalization and case linking 2026-06-09 00:05:28 +02:00
Christian
c019a0367b fix(mission): show project-level todo tasks in mission control detail 2026-05-18 07:26:09 +02:00
Christian
071d926781 fix(telefoni): skip initial auto-refresh when SSR rows exist 2026-05-18 07:07:51 +02:00
Christian
94f6735ed5 fix(telefoni): preserve SSR call rows when client refresh fails 2026-05-18 07:00:52 +02:00
Christian
ef8e68fc16 fix(telefoni): remove raw_payload dependency from call list queries 2026-05-17 23:16:31 +02:00
Christian
08f40977f9 fix(telefoni): keep SSR call rows when initial API refresh is empty 2026-05-17 09:44:28 +02:00
Christian
e162ee3fe1 fix(telefoni): render initial calls server-side on log page 2026-05-17 09:36:09 +02:00
Christian
e0c4e138d6 fix(settings): update SQL console access to require any permission instead of superadmin 2026-05-16 19:46:31 +02:00
Christian
1b6b37e96e feat(settings): add read-only SQL console with diagnostic presets 2026-05-16 13:40:58 +02:00
Christian
c5478b7e29 fix(telefoni): show legacy call history when telefoni_opkald is empty 2026-05-16 13:23:56 +02:00
Christian
6a68aecafa fix(telefoni): accept callbacks via db whitelist and internal fallback 2026-05-16 13:16:35 +02:00
Christian
8e5b3cf3d2 fix(telefoni): restore corrupted log template to resolve blank page 2026-05-16 12:18:59 +02:00
Christian
d0ec639de0 fix(telefoni): restore template and add clear load/error status banner 2026-05-16 12:10:59 +02:00
Christian
3bc4472525 fix(telefoni): add explicit load/error status and stronger empty-state fallback 2026-05-16 11:06:48 +02:00
Christian
97a4a2435c fix(telefoni): add SSR fallback rows for non-empty log page 2026-05-16 10:52:36 +02:00
Christian
0ed450451d fix(contacts): stabilize contacts pagination and company enrichment 2026-05-16 10:28:05 +02:00
Christian
a36e3e716f feat: Add Service Contract Report page with customer and contract selection
- Implemented a new HTML page for generating service contract reports.
- Added CSS styles for report layout and components.
- Developed JavaScript functionality for loading customers and contracts, fetching report data, and rendering metrics and cases.
- Included buttons for downloading reports in PDF and Excel formats.

docs: Create Route Auth Audit for route access control

- Generated an audit report detailing route access requirements.
- Classified routes based on authentication needs and documented them in a markdown file.

feat: Introduce buzzwords and mission projects tables in the database

- Created `buzzwords` and `sag_buzzwords` tables for managing keywords related to SAG cases.
- Established `mission_projects`, `mission_project_milestones`, and `mission_project_blockers` tables for project management.
- Updated `sag_sager` table to link with mission projects and milestones, including necessary foreign key constraints.
2026-05-12 08:41:13 +02:00
Christian
770f822fc6 feat: Implement bug reporting feature with screenshot support
- Added a new modal for reporting bugs, including fields for describing the issue and attaching optional files.
- Integrated automatic screenshot capture functionality when the bug report modal is opened.
- Created a new API endpoint for submitting bug reports, including validation and rate limiting.
- Added database migration for tracking bug report submissions.
- Updated frontend scripts to handle bug report submissions and display status messages.
- Enhanced contact search functionality with improved error handling and backward compatibility.
- Introduced a new button in the UI for accessing the bug report modal.
2026-05-06 07:01:43 +02:00
Christian
71f6372496 feat: Implement bug reporting feature with screenshot support
- Added a new modal for reporting bugs, including fields for describing the issue and attaching files.
- Implemented backend API for creating bug reports, including rate limiting and metadata logging.
- Introduced a new database table to track bug report submissions for auditing purposes.
- Enhanced the frontend to capture screenshots automatically and allow manual file uploads.
- Added error handling and user feedback for the bug reporting process.
- Updated existing templates and scripts to integrate the new bug reporting functionality.
2026-05-05 19:13:54 +02:00
Christian
1a44baba62 hotfix: fix economy time-queue order link path to /ordre 2026-05-05 07:42:46 +02:00
Christian
03a1b79737 hotfix: robust local order creation with customer mapping fallback 2026-05-05 07:40:58 +02:00
Christian
e878336537 hotfix: replace legacy missing economic customer number error message 2026-05-05 07:37:16 +02:00
Christian
a5866132ab hotfix: skip economic export when customer number missing (local-only) 2026-05-05 07:33:01 +02:00
Christian
ebdb13168d fix: allow local order creation without economic dependency 2026-05-05 07:30:09 +02:00
Christian
4b5e154dc1 fix: enforce local-order-only flow in economy time queue 2026-05-05 07:24:45 +02:00
Christian
f6b78f93eb fix: show sanitized phone details in sag contact search results 2026-05-05 07:14:51 +02:00
Christian
1fe0611453 fix: show phone and mobile in sag v3 add-contact search results 2026-05-05 07:03:03 +02:00
Christian
0dcc6c4fdb ui: make telefoni row action buttons icon-only 2026-05-05 06:50:20 +02:00
Christian
86b3b3be15 feat: add direct Ny kontakt / Søg / Firma buttons on telefoni rows 2026-05-05 00:57:28 +02:00
Christian
31fa771626 fix: strip local phone suffix from overly long caller numbers (Yealink URL misconfiguration) 2026-05-05 00:29:13 +02:00
Christian
e4e35a1285 fix: skip auto-loadCalls when SSR already rendered telefoni rows 2026-05-05 00:22:02 +02:00