Wednesday, April 16, 2025
3 changes · master
Enhancements to existing features
Users can now update a company’s shared address, VAT, and pricelist directly from a related contact, reducing extra navigation and avoiding inconsistent contact data. The change also removes the rarely used follow-up contact type in favor of invoice contacts, making customer records simpler to understand.
Original PR description
Rationale When you edit the contact of a company, you actually edit the company at least for what concerns the address. Specifications for address ==================== Previously fields were readonly…
Rationale When you edit the contact of a company, you actually edit the company at least for what concerns the address. Specifications for address ==================== Previously fields were readonly on form view and people had to follow the m2o to edit it. However this is not really user friendly and also eases desynchronization between code (that does not prevent updating contact address) and interface (who does it). We now consider contacts and their parent share the same address. Synchronization is therefore done upstream. There are still some limitations, like: address is not propagated through the whole contact tree, all descendants are not necessarily always updated, ... This would require a more in-depth rewrite of the sync code. Maybe for later. A new 'type address label' field is added that dynamically updated the partner address label. That way we know we are editing the Company Address when editing a contact. For other types the label indicates it is a specific address (Invoice Address, Delivery, ...) Varia This notably fixes an issue when setting a parent on a contact partner. Previously this parent was a company without address, and the address on the contact was not editable (readonly due to parent). Now it is correctly propagated to the parent. This allows to remove a custom call to '_handle_first_contact_creation' which was updating parent company when setting their first contact child. This is now standard. Method is kept for optimized import that is not touched in this PR to avoid adding performance issues. Vat / Pricelist ========== As for address fields, we now allow to edit VAT and pricelist on partners that are children of companies. It directly edits company, instead of forcing users to go to the parent and edit VAT. Implementation choice is to make a subset of commercial fields, limiting the sync currently on VAT only. Other commercial fields still behave like before this PR, notably to limit side effects, and because VAT is a more commonly updated fields than l10n or reference commercial fields. Varia This fixes an issue when a new parent without values is set on a contact child. Previously to this commit, commercial sync erased child values, which is annoying. Now child is not erased anymore and their values are sent to the parent, which is cool. This is still limited to "synced" values, aka VAT only. Task-4708358 Part of Task-4377720
Point of Sale users can now view and settle a customer's unpaid invoices during checkout. This makes it easier to collect outstanding balances in-store and gives staff clearer visibility by separating invoice amounts due from order amounts due.
Original PR description
- Added functionality to list and settle unpaid invoices in PoS. - Introduced a "Settle Invoice" product for processing invoice order line. - Enhanced customer balance tracking by distinguishing order due and invoice due amounts. - Add access rights for PoS users to read account.move community PR: https://github.com/odoo/odoo/pull/203672 task-id: 4501448
Code cleanup and technical improvements
The VoIP softphone has been redesigned to make calling workflows easier and more connected. Users can search contacts more efficiently, see better phone country detection, send SMS from VoIP when available, and access linked recruitment applicants directly from calls.
Original PR description
This commit introduces a complete rewrite of the Odoo Softphone UI. ## Model changes: - The computed field "t9_name" is added to res.partner to allow efficient searching by "[T9 code](https://en.wikipedia.org/wiki/T9_(predictive_text))". - The computed field "country_code_from_phone" is added to res.partner, mail.activity and voip.phone. It computes the ISO country code corresponding to the country contained in their phone number field. ## Bridge modules: - Introduction of the voip_sms bridge module, adding a button to the VoIP softphone to send SMS if both voip and sms are installed. - Introduction of the voip_hr_recruitment bridge module, adding a button to open the form view of applicants linked to a VoIP contact. Task-4642428 Community: https://github.com/odoo/odoo/pull/202558 Co-authored-by: Basioni (basm) <basm@odoo.com> Co-authored-by: Brieuc-brd <brd@odoo.com> Co-authored-by: Louis Wicket (wil) <wil@odoo.com> Co-authored-by: yhu-odoo <yhu@odoo.com>