Daily updates from Odoo
Monday, December 8, 2025
4 changes · master
Enhancements to existing features
This update enhances the VoIP call setup process by adding a country selector to the keypad. Users can now easily input country codes, defaulting to the country of their last call. The system will automatically format the number correctly once a valid country is selected, streamlining the calling experience.
Original PR description
Instead of only show a country flag on keypad, we now have a country selector that can help user to input country prefix when calling. The default flag will be the country of last call. We will format the number when it's valid. Task-5106962
This update enhances the visibility of payroll issues on pay runs and payslips. Previously, only the first issue was displayed, making it difficult to identify all problems. Now, issues are categorized as 'Warning' or 'Error' and multiple issues are clearly indicated with '(Y more...)', ensuring accurate payroll processing.
Original PR description
Currently, issues are not easily visible in the pay runs list view, and only the first issue is displayed on a payslip without indication of additional ones. Improvements: - Rename the current status to Warning or Error depending on the issues present. - On payslips with multiple issues, display (Y more...) where Y is the number of additional issues beyond the first. task-5079345
This update clarifies the status of POS orders by ensuring they always display the latest fiscal folio (UUID) linked to the associated CFDI invoice, regardless of whether it's a global or individual invoice. This resolves confusion caused by inconsistent invoice information and improves traceability for tax reporting.
Original PR description
When reviewing POS orders, it was often unclear whether an order had been properly invoiced or not. The list view could make orders appear 'uninvoiced' even though a signed CFDI already existed. This…
When reviewing POS orders, it was often unclear whether an order had been properly invoiced or not. The list view could make orders appear 'uninvoiced' even though a signed CFDI already existed. This was especially confusing when an individual invoice was created after a global invoice, since the new fiscal folio (UUID) wasn’t reflected on the order. This improvement makes the fiscal traceability much clearer by ensuring that each POS order always shows its latest fiscal folio (UUID), whether it comes from a global or an individual invoice and by keeping its related CFDI documents in sync. Key changes: - Linked CFDI documents to POS orders during document creation. - The fiscal folio on the POS order now reflects the latest signed CFDI (invoice or global invoice) and explicitly excludes auto-generated global refund (TipoDeComprobante == 'E'). - Updated the SAT sync logic to include both `global_sent` and `sent` POS orders. - Corrected the CFDI origin UUID logic in refund flows, ensuring proper linkage for global refunds. - Replaced `self._cr` with `self.env.cr` for consistency and to align with newer ORM usage standards. task-4721995
This update automatically cleans up VoIP calls that were unexpectedly terminated, preventing inaccurate reporting and improving data accuracy. A new filter has also been added to the call search view, allowing users to easily identify and manage these calls. This enhances the overall reliability of the VoIP system.
Original PR description
This commit introduces a mechanism to detect and clean up calls that ended unexpectedly (e.g. due to server restart or crash) and were left in a `calling` or `ongoing` state. A new cron job `_cleanup_stuck_calls()` runs every 5 minutes to: - Terminate 'calling' calls older than 2 minutes. - Terminate 'ongoing' calls older than 4 hours. These calls are marked as `terminated` but will lack an `end_date`. To improve the user experience regarding these calls a new filter "Ended Unexpectedly" is added to the VoIP calls search view as the user wasn't able to filter out these calls before. Task-5208152