Commit Graph

378 Commits

Author SHA1 Message Date
Christian
9ed709c9e8 release: v2.8.0 case creation and messaging 2026-09-08 01:55:47 +02:00
Christian
9ca562745a feat(subscriptions): enhance subscription update logic to allow direct edits for drafts and add new endpoint for manual invoice processing
feat(ticket): update email integration to use new priority constants for ticket classification

feat(procurement): add procurement overview page with dynamic data loading and display

test(subscriptions): add tests for billing calendar to ensure correct invoice dates

feat(reminder): implement automated task lists with user-defined rules for reminders

feat(migrations): create tables for managing delefiber product prices and mobile recorder provisioning history

test(mobile_recorder): add tests for provisioning mobile recorders to ensure correct asset creation and updates
2026-09-07 19:05:58 +02:00
Christian
1cfe5aee76 feat(migrations): add AI benchmark and vTiger archive tables
- Created tables for AI benchmark runs and results to facilitate model evaluation.
- Added expected answers column to benchmark results.
- Introduced tables for internet connection change cases and vTiger archive management, including records, relations, and checkpoints.
- Implemented triggers to enforce append-only behavior for vTiger archive records and files.
- Enhanced solution management with soft delete capabilities for sag_solutions and knowledge_articles.

feat(scripts): add CRM benchmarking script for Ollama models

- Developed a Python script to benchmark CRM models exposed through Ollama, including various test cases and scoring mechanisms.

test(tests): add comprehensive tests for new features

- Implemented tests for internet change case service, vTiger archive functionality, and sag solution knowledge management.
- Ensured coverage for edge cases and error handling in the new features.
2026-08-31 13:01:35 +02:00
Christian
adc4fb5876 Implement tests for sag module, add knowledge base templates, and enhance internet connection migrations
- Added multiple test cases for the sag module to ensure proper functionality and data handling.
- Created new templates for knowledge detail and knowledge index pages to display articles and solutions.
- Introduced migrations to enhance the internet connections schema, including new columns for manual sharing and SLA subscriptions.
- Added a script to reconcile known internet connections with verified data.
- Planned the implementation of a new website content administration module for managing customer references and operational status.
2026-08-30 14:34:43 +02:00
Christian
ffdc9ac62c release: v2.7.2 2026-08-28 20:49:55 +02:00
Christian
2c2db54d16 release: v2.7.1 2026-08-25 18:42:43 +02:00
Christian
4daca03a55 release: v2.7.0 2026-08-25 16:04:28 +02:00
Christian
b755d61a5e release: v2.6.2 2026-08-25 15:39:38 +02:00
Christian
d0f27b78d5 release: v2.6.0 2026-08-25 01:09:45 +02:00
Christian
6906568dc2 release: v2.5.1 2026-08-18 20:57:49 +02:00
Christian
0920f2ce30 feat: manage case timers from time usage tab 2026-08-18 06:56:36 +02:00
Christian
97218d61a8 fix: separate timer conversion workflow from case switch 2026-08-17 20:53:08 +02:00
Christian
cabe0395ed fix: open timer conversion from bottom bar tab 2026-08-17 20:43:52 +02:00
Christian
9ac5b91f6f fix: harden bottom bar timers messages and access 2026-08-17 19:34:39 +02:00
Christian
88f7cec478 checkpoint: before bottom bar and side panel fixes 2026-08-17 19:27:43 +02:00
Christian
533a652337 feat: Add product creation functionality for ALSO import lines
- Implemented a button to create a product in Hub for unmatched ALSO lines in the frontend.
- Added a new API endpoint to handle product creation from an ALSO import line.
- Enhanced the service layer to create a Hub product and map it to the corresponding line.
- Updated the bottom bar to include support case management features, including assigning cases to technicians.
- Improved the UI for displaying unassigned support cases and added functionality for assigning cases to users.
- Refactored CSS styles for better visual consistency in the bottom bar and support queue cards.
2026-08-12 07:20:04 +02:00
Christian
56cc1bdcc4 feat: Enhance AnyDesk integration and vendor email domain management
- Updated the AnyDesk quick connect modal to improve user experience with new UI elements and functionality.
- Added support for saving and managing multiple AnyDesk IDs associated with cases, including hardware and contact information.
- Implemented backend endpoints for managing vendor email domains, allowing addition, deletion, and retrieval of domains linked to vendors.
- Created a new database table for vendor email domains to support multiple exact domains per vendor.
- Added tests for bankruptcy workflow to ensure correct case creation and alert linking based on exact CVR matches.
2026-07-30 20:11:43 +02:00
Christian
d81a8f41b4 feat: Add end-to-end tests for Sag module HTTP API
- Implemented a comprehensive end-to-end testing script for the Sag module's HTTP API, covering various functionalities including case creation, updates, and file uploads.
- Introduced a safe HTML sanitizer utility to ensure safe rendering of HTML content in the BMC Hub UI.
- Added database migrations for new features including WAN connection marking for wall outlets, permanent audit trails for supplier invoices, and dedicated permissions for the Sag module.
- Created a migration center for manual subscription and invoice migrations with relevant tables and indexes.
- Added tests for migration center functionalities, ensuring stability and correctness of the new features.
2026-07-28 14:18:24 +02:00
Christian
428ad21132 feat(locations): add cross-fields overview page and integrate UISP device data 2026-07-23 21:32:56 +02:00
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