Release Notes v.0.0.13
Feb 4, 2025
ALGA PSA v. 0.0.13 RELEASE NOTES
🚀 New Features
Billing & Invoicing System
Company-Specific Invoice Templates: Added per-company template selection with fallback to system-wide defaults.
Automated Invoice Email Delivery: Implemented a prioritized billing contact system for invoice PDF emails—with fallback from billing contact to company billing/primary emails—and temporary file handling for attachments.
Invoice Finalization Workflow: Introduced a finalized_at timestamp and audit logging to enforce data integrity by preventing modifications of finalized invoices.
Service Pricing on Invoice Detail Lines: Auto-populated service pricing details on invoice breakdowns for more accurate billing.
Time Management
Temporal API Integration: Replaced date-fns with the modern, timezone-aware Temporal API for more reliable date handling.
Bulk Time Period Configuration: Enabled simultaneous creation of multiple time period settings by refactoring the automatic time period creation logic.
Semi-Monthly Period Handling: Implemented precise calculations for periods ending on the 15th and at month-end, including handling of overlapping periods, month boundaries, and leap years.
Ticket-Based Time Entries & Enhanced Time Entry Creation: Added the ability to create time entries directly from tickets — with timer synchronization — and integrated a dedicated dialog that pre-populates start/end times, resets after saving, and applies improved rounding to duration formatting.
Time Entry Deletion: Introduced confirmation dialogs (via a dedicated ConfirmationDialog component) and toast notifications for a smoother deletion experience.
Component Reorganization: Reorganized time management components into dedicated subdirectories (e.g., separating schedule components from time entry and approval components) and standardized import paths for better code maintainability.
Work Item Management
Introduced a WorkItemDetailsDrawer for consistent work item viewing and editing.
Enhanced the WorkItemCard (formerly TicketCard) with click-to-detail functionality for a cohesive management experience within the Technician Dispatch Dashboard.
Introduced comprehensive user loading states and robust error handling.
Implemented conditional rendering based on user availability with added debug logging to aid troubleshooting.
Enhanced the Technician Dispatch Dashboard to accommodate new work item types for a more cohesive management experience.
Infrastructure & Security
Secret Management: Switched to an async/await pattern with filesystem caching for secret loading, reducing redundant checks.
Job Scheduler Fallback: Introduced a DummyJobScheduler to allow for graceful degradation when the primary job scheduler isn’t available.
Build & Deployment Improvements: Enhanced Docker and environment configuration (e.g., updating APP_ENV settings and removing automatic .env deletion) and improved error handling during event bus and subscriber initialization.
🔨 Improvements
Job Processing & Monitoring
Detailed Job Progress Tracking: Added comprehensive status updates for PDF generation and email delivery, including human-readable context (invoice numbers, company names).
Consolidated Email Service & Job Handling: Unified email handling with templating, improved error recovery, and enhanced job status updates.
Job Monitor UI Improvements: Updated job monitor colors and status visibility to make tracking easier at a glance.
TypeScript Configuration Standardization: Created a shared base TS config (with @/ and @ee/ path aliases) and cleaned up unnecessary options across the codebase.
Error Handling Enhancements: Added null safety checks and try-catch wrappers (notably around event bus and job scheduler initialization) to prevent cascading failures.
Template Validation: Enhanced invoice template management by adding a template name input, loading states, optional parsing, and validation before saving.
Time Calculations & Rounding Fixes: Corrected billable hour totals and floating point rounding errors, ensuring precise and accurate time entry calculations.
Enhanced Scheduling & User Assignment:
Added date range filtering and refresh logic to the Technician Dispatch Dashboard.
Introduced new interface fields (additional_user_ids and assigned_user_ids) to support more flexible work item assignments.
Replaced the MultiUserPicker with a single UserPicker that auto-assigns the current user by default in new schedule entries.
Refactored Calendar & Dispatch UI Components:
Extracted calendar styling into a dedicated CalendarStyleProvider component.
Updated work item type labels to include expanded displays and a dedicated color scheme (especially for ad-hoc work items).
Work Item Management & Scheduling Enhancements
Improved Work Item Selection UX:
Replaced the existing WorkItemPicker with an AddWorkItemDialog to offer a more intuitive, dialog-based selection flow.
Adjusted modal layering (with updated z-index settings) to ensure dialogs display correctly.
Consistent Work Item Type Visibility & Theming:
Applied design system variables to create color-coded badges that clearly indicate work item type and billable status.
Standardized hover states across time entry components and improved UI consistency between card and table views.
Simplified Schedule Entry User Assignment:
Replaced the MultiUserPicker component with a single UserPicker, which now auto-assigns the current user by default, streamlining agent scheduling.
Optimized Work Item Queries and User Assignment:
Refactored complex SQL joins using efficient subquery aggregation to reduce redundant data processing.
Centralized user fetching in the UI to avoid duplicate constructions of user lists.
Simplified ad-hoc work item assignments by leveraging existing schedule entries.
Enhanced Scheduling & User Assignment Features:
Added date range filtering and refresh logic to the Technician Dispatch Dashboard.
Introduced new fields (additional_user_ids and assigned_user_ids) to work item interfaces.
Improved error handling with toast notifications to support better feedback during scheduling operations.
Refactored Calendar & Dispatch UI Components:
Extracted calendar styling into a dedicated CalendarStyleProvider component.
Improved work item type labeling with an expanded display for ad-hoc work items through dedicated color schemes.
🐞 Bug Fixes
Invoice UI Errors: Fixed issues with invoice error message display and preview label inconsistencies.
Time Entry Calculation Issues: Resolved bugs related to total and billable time calculations and ensured correct floating point formatting.
Company Billing Updates: Improved handling of null/empty billing email fields during company updates.
General UX Polish: Various fixes including improved confirmation dialogs and updated UI elements for a more intuitive user experience.