Daily updates from Odoo
Navigate
Branch
Thursday, June 6, 2024
43 changes
16 changes
Resolved issues and error corrections
This fix keeps automated web tours from stopping unexpectedly when an optional page element is not found. It restores more forgiving behavior, helping internal testing and guided flows run more reliably.
Original PR description
This commit [1] introduces `queryOne` to find element nodes in DOM. But, if `queryOne` fails to find the element it throws error which breaks the tour which wasn't the case before this change was introduced. There might be some scenarios where it might not affect if the node is found or not, but because of `queryOne` the tour will fail. So, to fix this we use `queryFirst` which doesn't throw error if it fails to find the node. 1: c0f3bdb928db5a119817710e260edfda9a2f40ac --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Current behavior: In certain currencies, you have coin of values like 0.025 that requires more than 2 decimal places. But in the coin/bills view they were not correctly showed. Values like 0.025 would appear as 0.02 Steps to reproduce: - Create a new company using a currency that needs 3 decimal places (Bahraini Dinar) - Try to create coin/bills with a value like 0.025 - After saving the last part cannot be seen anymore opw-3950930 --- I confirm I have signed the CLA and read the PR
Original PR description
Current behavior: In certain currencies, you have coin of values like 0.025 that requires more than 2 decimal places. But in the coin/bills view they were not correctly showed. Values like 0.025 would appear as 0.02 Steps to reproduce: - Create a new company using a currency that needs 3 decimal places (Bahraini Dinar) - Try to create coin/bills with a value like 0.025 - After saving the last part cannot be seen anymore opw-3950930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168011 Forward-Port-Of: odoo/odoo#167497
starts. If the user language cannot be determined, it uses the one set in the html `lang` attribute. If this language is not installed, the webclient translation route does not return lang parameters such as date fortmat. However, the JS code expects those parameters to be available and missing parameters lead to multiple errors (e.g. when calling `parseDatetime` which requires the date format). This PR ignore the lang passed to this route if it is not installed in order for it to fallback
Original PR description
starts. If the user language cannot be determined, it uses the one set in the html `lang` attribute. If this language is not installed, the webclient translation route does not return lang parameters such as date fortmat. However, the JS code expects those parameters to be available and missing parameters lead to multiple errors (e.g. when calling `parseDatetime` which requires the date format). This PR ignore the lang passed to this route if it is not installed in order for it to fallback to the context lang. Steps to reproduce the issue: - Create an html page and set the lang attribute value to the IETF Xhosa tag (xh-ZA) - A request to `/web/webclient/translation` is made and an error is displayed in the console. opw-3953457 Forward-Port-Of: odoo/odoo#167491
Steps to reproduce: - Open POS - Go to configuration > Payment methods - Create new > Journal > Bank - Integration select viva wallet - Use any fake credential - Use this payment method in any active POS - Open POS and pay using viva wallet Issue: Throws traceback while payment request. Cause: Used to fetch POS session id from undefined session. FIX: Fetched the session id of the pos model using the this.pos.session (correct position of data). task- 3883584 Forward-Port-O
Original PR description
Steps to reproduce: - Open POS - Go to configuration > Payment methods - Create new > Journal > Bank - Integration select viva wallet - Use any fake credential - Use this payment method in any active POS - Open POS and pay using viva wallet Issue: Throws traceback while payment request. Cause: Used to fetch POS session id from undefined session. FIX: Fetched the session id of the pos model using the this.pos.session (correct position of data). task- 3883584 Forward-Port-Of: odoo/odoo#163291
This commit fixes the issue where a traceback is shown when an order will be invoiced after paying with an online payment. Steps to reproduce: - Setup online payment and link to the pos.config. - Open a session. - Create an order that will be invoiced and pay with the online payment method. - Traceback during the download of the invoice. Forward-Port-Of: odoo/odoo#164315
Original PR description
This commit fixes the issue where a traceback is shown when an order will be invoiced after paying with an online payment. Steps to reproduce: - Setup online payment and link to the pos.config. - Open a session. - Create an order that will be invoiced and pay with the online payment method. - Traceback during the download of the invoice. Forward-Port-Of: odoo/odoo#164315
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164514
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164514
Prior to this commit, the Point of Sale would load all product pricelist items upon session opening. This posed a problem in databases with a large number of pricelist items. This commit addresses the issue by only loading pricelist items corresponding to the loaded products. Additionally, for any products that are loaded into the PoS at a later time, their related pricelist items will be loaded as well. opw-3893700 --- I confirm I have signed the CLA and read the PR guidelines at www.odo
Original PR description
Prior to this commit, the Point of Sale would load all product pricelist items upon session opening. This posed a problem in databases with a large number of pricelist items. This commit addresses the issue by only loading pricelist items corresponding to the loaded products. Additionally, for any products that are loaded into the PoS at a later time, their related pricelist items will be loaded as well. opw-3893700 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164965
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164643
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164643
For version 17.0 only Problem: In restaurant, in the product page, we don't have anything to remind which table is selected Steps to reproduce: - Install "Point of Sale" app and "pos_restaurant" module - Open a restaurant session - Click on a table, the product page is loaded and we don't see the table number in the navbar Note: Solution copied from version 17.1 opw-3929069 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Po
Original PR description
For version 17.0 only Problem: In restaurant, in the product page, we don't have anything to remind which table is selected Steps to reproduce: - Install "Point of Sale" app and "pos_restaurant" module - Open a restaurant session - Click on a table, the product page is loaded and we don't see the table number in the navbar Note: Solution copied from version 17.1 opw-3929069 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166595 Forward-Port-Of: odoo/odoo#165578
Steps to reproduce: - In Website edit mode. - Drag and drop a "Form" snippet onto the page. - Add a multi checkboxes field to the form. - Edit the text of a checkboxes input. - click on the toggle button next to this input. - Bug: the button remains disabled. (next click is ok) This bug occurs because when we search for the checkbox that should be selected in the "values" variable (in the "_notifyCurrentState()" function of the "we-list" widget), we search for it based on its ID in
Original PR description
Steps to reproduce: - In Website edit mode. - Drag and drop a "Form" snippet onto the page. - Add a multi checkboxes field to the form. - Edit the text of a checkboxes input. - click on the toggle button next to this input. - Bug: the button remains disabled. (next click is ok) This bug occurs because when we search for the checkbox that should be selected in the "values" variable (in the "_notifyCurrentState()" function of the "we-list" widget), we search for it based on its ID in the DOM. However, on the first click on the toggle, the ID has not yet been defined in the DOM according to the "values" variable. task-3901472 Forward-Port-Of: odoo/odoo#167842 Forward-Port-Of: odoo/odoo#165264
## Issue: When creating an activity linked to a record like a lead, if we edit this activity, for example from To-Do to Meeting, we lose the context from the Lead and have a bad context based on the activity instead, resulting in an improper link in the calendar. ## Steps to reproduce: 1. Install CRM (this will also install the rest of the required modules). 2. Create or use an existing Lead. 3. Create a new To-Do activity. 4. Click on edit for this activity and change it to Meeting. 5
Original PR description
## Issue: When creating an activity linked to a record like a lead, if we edit this activity, for example from To-Do to Meeting, we lose the context from the Lead and have a bad context based on the…
## Issue: When creating an activity linked to a record like a lead, if we edit this activity, for example from To-Do to Meeting, we lose the context from the Lead and have a bad context based on the activity instead, resulting in an improper link in the calendar. ## Steps to reproduce: 1. Install CRM (this will also install the rest of the required modules). 2. Create or use an existing Lead. 3. Create a new To-Do activity. 4. Click on edit for this activity and change it to Meeting. 5. Now click on Open Calendar and place the activity. 6. Click on the calendar event we have just created, and we will see a link to "Activity". Click on it. ## Solution: To ensure the proper link to the Lead/Opportunity, we need to pass the right context when editing the activity. This issue arose from changes made in `activity_service.js` and the addition of the model `mail.activity.schedule`, which separates the edit and create functions, unlike the behavior we had in 16.0. opw-3942711 Before  After  Forward-Port-Of: odoo/odoo#167996
Problem: There is taxes added to the gift card discount Steps to reproduce: - Install "Point of sale" app - Go to Settings and activate gift cards - Create a gift card (for ex 100€) - Copy the code - Open PoS > Add a product (more than the price of the gift card to understand better) > add the gift card - The card value is not 100€ but more because it includes taxes Solution: Set an empty Array as tax will allow this.tax_ids to be evaluated as true in a if statement and will define
Original PR description
Problem: There is taxes added to the gift card discount Steps to reproduce: - Install "Point of sale" app - Go to Settings and activate gift cards - Create a gift card (for ex 100€) - Copy the code - Open PoS > Add a product (more than the price of the gift card to understand better) > add the gift card - The card value is not 100€ but more because it includes taxes Solution: Set an empty Array as tax will allow this.tax_ids to be evaluated as true in a if statement and will define an empty Array for the tax of the gift card https://github.com/odoo/odoo/blob/7df8fc435c6ea199292f47954202d4f3c93b2629/addons/point_of_sale/static/src/app/store/models.js#L745-L749 opw-3862427 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163928
Before this commit, the attendees were not allowed to remove anyone from the event (including themselves) when editing the event in the form view. This was a problem that came after updating the views to OWL and also reverting the PR [#133504](https://github.com/odoo/odoo/pull/133504). After this commit, the event attendees can perform attendee removals normally because we check inside the compute if it the current attendee was indeed an attendee right before the change is completed. task-
Original PR description
Before this commit, the attendees were not allowed to remove anyone from the event (including themselves) when editing the event in the form view. This was a problem that came after updating the views to OWL and also reverting the PR [#133504](https://github.com/odoo/odoo/pull/133504). After this commit, the event attendees can perform attendee removals normally because we check inside the compute if it the current attendee was indeed an attendee right before the change is completed. task-3948322 Forward-Port-Of: odoo/odoo#166696
Current behavior: Sometimes payment made with adyen where blocked in the "Waiting for card" status when cancelling a payment. As the issue is not reproducible consistantly I made a diagram to show what I think is happening. It was probably happening because the last_adyen_status was emptied at a wrong moment. To fix this we make sure that a real new payment request is made before emptying it. Before this fix when doing a cancel request, it would empty the last_adyen_status  opw-3427860 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168056 Forward-Port-Of: odoo/odoo#165792
Current Behaviour: - Currently, if the internet is slow and the user tries to open any action, which action target='new,' it takes time to open the action form in the browser, if the user clicks multiple times during this loading process, multiple instances of the same action will be displayed to the user. Steps to produce: - Open CRM and navigate to the activity view of CRM. - Select throttling as 'Slow 3G' in your browser network setting. - Now click multiple times on any scheduled act
Original PR description
Current Behaviour: - Currently, if the internet is slow and the user tries to open any action, which action target='new,' it takes time to open the action form in the browser, if the user clicks multiple times during this loading process, multiple instances of the same action will be displayed to the user. Steps to produce: - Open CRM and navigate to the activity view of CRM. - Select throttling as 'Slow 3G' in your browser network setting. - Now click multiple times on any scheduled activity to open an action. Expected Behaviour: - Only open the dialog for the last action requested when there are multiple actions requested with target='new'. Task-3750720 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166488 Forward-Port-Of: odoo/odoo#159236
Issue: ====== list doesn't appear in quick edit of html_field Steps to reproduce the issue: ============================= - Go to any sale order - Send by email - Add a list inside the email - It doesn't appear Origin of the issue: ==================== Most of the templates have hardcoded `padding = 0px`, so when we convert a `p` element to a `ul` or `ol` element it will have have the same styling and we loose the default padding for the list elements. Solution: ========= We
Original PR description
Issue: ====== list doesn't appear in quick edit of html_field Steps to reproduce the issue: ============================= - Go to any sale order - Send by email - Add a list inside the email - It doesn't appear Origin of the issue: ==================== Most of the templates have hardcoded `padding = 0px`, so when we convert a `p` element to a `ul` or `ol` element it will have have the same styling and we loose the default padding for the list elements. Solution: ========= We set the padding as null to remove any forced padding used. opw-3900433 Forward-Port-Of: odoo/odoo#167916 Forward-Port-Of: odoo/odoo#165773
16 changes
Enhancements to existing features
Front desk users will now see a chat popup when a visitor arrives or sends a message. This helps staff notice visitors faster and respond promptly instead of missing notifications that were previously limited to Odoobot.
Original PR description
In this commit, open a chat window so that front-desk user can see a new message in a popup as the visitor visits at frontdesk, which was previously restricted to Odoobot user to avoid spamming users, but it is crucial for frontdesk to be notified of the visitor. task-3790300
The data cleaning app now brings duplicate record merging into the same workflow, making it easier to identify and consolidate duplicate customer or business records. This helps teams improve data quality, reduce confusion, and keep cleaner records without switching between separate tools.
Resolved issues and error corrections
UPS package types are now renamed so users can clearly tell the standard UPS carrier option apart from the legacy UPS option when grouping by carrier. This reduces confusion during package type selection and helps teams choose the correct UPS configuration.
Original PR description
Steps to reproduce: - open package type and group by carrier - No way to distinguish rest and legacy ups Fix: rename package type to match carrier and distinguish it from rest ups opw-3911171
Code cleanup and technical improvements
This cleanup removes an obsolete internal option from several document extraction areas because it is no longer used. It has no expected impact on day-to-day users, but it simplifies maintenance and reduces unnecessary code paths.
Original PR description
Since commit d225e77, this parameter is unused.
This draft updates the underlying make-to-stock order flow to align with related changes in the main Odoo platform. The work appears focused on restructuring internal behavior rather than introducing a finished business-facing feature, so visible impact may be limited until the draft is completed.
Original PR description
DRAFT
Miscellaneous changes
Before, if a bank transaction contain the sale order reference, the reconciliation model will try to reconcile with the invoices created from this sale order but ignore the payment records for those. This leads to situations where it looks like there were two payments on the invoices (one payment record and one bank transaction) while there is just one partial payment. Steps to reproduce: 0/ Have default reconciliation models 1/ Create SO for 100$ and confirm invoice 2/ Partially pay invoi
Original PR description
Before, if a bank transaction contain the sale order reference, the reconciliation model will try to reconcile with the invoices created from this sale order but ignore the payment records for those. This leads to situations where it looks like there were two payments on the invoices (one payment record and one bank transaction) while there is just one partial payment. Steps to reproduce: 0/ Have default reconciliation models 1/ Create SO for 100$ and confirm invoice 2/ Partially pay invoice for 70$ 3/ Create bank transaction with SO ref and same partner for 70$ 4/ Match transaction => will match the 30$ residual of the invoice instead of 70$ payment Now, the system will try to reconcile with the payments of those invoices first before considering invoice reconciliation. opw-3904177 Forward-Port-Of: odoo/enterprise#62972
In the Payroll app with a Belgian company, we can do Reporting > Paid Time Off Allocation. This opens a wizard and if we filled the department then the time off type, the app would crash because of a terrible sql query. Also, the query was doing unnecessary subqueries that have been removed. Task: 3878904 Forward-Port-Of: odoo/enterprise#62293
Original PR description
In the Payroll app with a Belgian company, we can do Reporting > Paid Time Off Allocation. This opens a wizard and if we filled the department then the time off type, the app would crash because of a terrible sql query. Also, the query was doing unnecessary subqueries that have been removed. Task: 3878904 Forward-Port-Of: odoo/enterprise#62293
The aim of this commit is to make the code more robust and defensive by handling a bad value for the `vat` field. Context: Partners having a `partner.vat=False` were making the compact function crash. Before the commit: The flow crash even if the value shouldn't be processed. After the commit: The flow is smooth. task-id: None Forward-Port-Of: odoo/enterprise#63865
Original PR description
The aim of this commit is to make the code more robust and defensive by handling a bad value for the `vat` field. Context: Partners having a `partner.vat=False` were making the compact function crash. Before the commit: The flow crash even if the value shouldn't be processed. After the commit: The flow is smooth. task-id: None Forward-Port-Of: odoo/enterprise#63865
This will add tracking to some employee field that have an impact on withholding taxes. Task: 3879035 Forward-Port-Of: odoo/enterprise#61315
Original PR description
This will add tracking to some employee field that have an impact on withholding taxes. Task: 3879035 Forward-Port-Of: odoo/enterprise#61315
In the form view, new line were linked to new_id which computed the subscription_state value to a wrong version. Forcing readonly=False ensure the value is fetched from the origin and thus correct when computing the discount. task-id: 3699064 Forward-Port-Of: odoo/enterprise#58604
Original PR description
In the form view, new line were linked to new_id which computed the subscription_state value to a wrong version. Forcing readonly=False ensure the value is fetched from the origin and thus correct when computing the discount. task-id: 3699064 Forward-Port-Of: odoo/enterprise#58604
Before this commit, when adding an outdated activity from kanban activity widget, it crashed with the following errors: `TypeError: cannot read property of undefined (reading `mail_template_ids`)` `TypeError: Cannot read properties of undefined (reading 'toLocaleString')` Steps to reproduce: - on crm lead schedule call activity and make sure that activity is at least 1 month old - book activity and save it - try to access/edit activity This happens because when the `get_today_call_a
Original PR description
Before this commit, when adding an outdated activity from kanban activity widget, it crashed with the following errors: `TypeError: cannot read property of undefined (reading `mail_template_ids`)` `TypeError: Cannot read properties of undefined (reading 'toLocaleString')` Steps to reproduce: - on crm lead schedule call activity and make sure that activity is at least 1 month old - book activity and save it - try to access/edit activity This happens because when the `get_today_call_activities` function is called. Function fetches fields during the records formatting, but it doesn't fetch `date_deadline` and `mail_template_ids`, therefore those fields remain undefined, hence the errors rise. task-3945492 Forward-Port-Of: odoo/enterprise#63792
In the salary configurator, we use a meal voucher amount by default: 7 .45€/worked day. It should really copy the meal voucher amount from the contract instead. Task: Forward-Port-Of: odoo/enterprise#63851 Forward-Port-Of: odoo/enterprise#61655
Original PR description
In the salary configurator, we use a meal voucher amount by default: 7 .45€/worked day. It should really copy the meal voucher amount from the contract instead. Task: Forward-Port-Of: odoo/enterprise#63851 Forward-Port-Of: odoo/enterprise#61655
Steps to reproduce: - Install sign - Add two document to sign for the Marc Demo - Sign in as Marc Demo - Go to the sign app and sign both documents Issues: There's no button to close the dialog box, you are forced to close the window. opw-3847269 Forward-Port-Of: odoo/enterprise#63671 Forward-Port-Of: odoo/enterprise#61380
Original PR description
Steps to reproduce: - Install sign - Add two document to sign for the Marc Demo - Sign in as Marc Demo - Go to the sign app and sign both documents Issues: There's no button to close the dialog box, you are forced to close the window. opw-3847269 Forward-Port-Of: odoo/enterprise#63671 Forward-Port-Of: odoo/enterprise#61380
The issue: When importing a FEC file, the created COAs lack correct translation for languages other than English. This discrepancy arises because the xml_id generated during COA creation does not match the xml_id produced by the _load_translations function. The new COAs' xml_id is a composite of the module ('l10n_fr_fec_import' in this case), company ID, prefix ('account' in this case), and a key derived from the account number code in the CSV file (not Odoo's default code). Consequently, when
Original PR description
The issue: When importing a FEC file, the created COAs lack correct translation for languages other than English. This discrepancy arises because the xml_id generated during COA creation does not…
The issue:
When importing a FEC file, the created COAs lack correct translation for languages other than English. This discrepancy arises because the xml_id generated during COA creation does not match the xml_id produced by the _load_translations function. The new COAs' xml_id is a composite of the module ('l10n_fr_fec_import' in this case), company ID, prefix ('account' in this case), and a key derived from the account number code in the CSV file (not Odoo's default code). Consequently, when calling the _load_translations function, it attempts to update translations using a different xml_id, causing failure in locating records.
The fix:
Include the template_data, if available, during COA translation, as it is more efficient than loading and parsing the entire CSV file. This template data already contains the necessary information, including the correct xml_id. Additionally, introduce a key 'is_xml_generated' in the context to prevent the generation of an incorrect xml_id.
Community PR: https://github.com/odoo/odoo/pull/152090
opw-3646861
Forward-Port-Of: odoo/enterprise#55537Fix "Buisness" and "Busoness" typo in the account view form. related PR: odoo/enterprise#54483 Task-3973541 Forward-Port-Of: odoo/enterprise#63896
Original PR description
Fix "Buisness" and "Busoness" typo in the account view form. related PR: odoo/enterprise#54483 Task-3973541 Forward-Port-Of: odoo/enterprise#63896
Steps to reproduce: 1. Install the planning module and open it. 2. Open events in calendar view. 3. Click on any event. 4. In the calendar popover, observe the spacing around the percentage (%). Issue: There is inconsistency in spacing around the percentage (%). Solution: Add a space before the percentage and remove the space after it in the common calendar popover. task-3908815 Forward-Port-Of: odoo/enterprise#62083
Original PR description
Steps to reproduce: 1. Install the planning module and open it. 2. Open events in calendar view. 3. Click on any event. 4. In the calendar popover, observe the spacing around the percentage (%). Issue: There is inconsistency in spacing around the percentage (%). Solution: Add a space before the percentage and remove the space after it in the common calendar popover. task-3908815 Forward-Port-Of: odoo/enterprise#62083
11 changes
New functionality added to Odoo
The IoTBox homepage now displays a new section showing all connected devices in a table format, making it easier for users to see what hardware is connected to their IoT box. This improvement helps users quickly verify device connectivity and manage their IoT infrastructure.
Original PR description
Added "iot devices" section containing a table displaying all devices connected to iotbox.
Resolved issues and error corrections
This fix restores the "Generate Payslips" and "Regenerate Work Entries" buttons that were accidentally hidden in the Payroll work entry view. The buttons disappeared due to a technical issue where system updates were overwriting custom button configurations. This fix ensures users can access these important payroll functions again.
Original PR description
Versions -------- - 17.0 - saas-17.1 - saas-17.2 Issue ----- From Payroll work entry view, the "Generate Payslips" and "Regenerate Work Entries" buttons have gone missing. Cause ----- In commit 4134ed00f6f I added a registry workaround in order to not modify the manifest. When `hr_gantt` gets added, the `workEntriesGanttView` gets updated to its value, but this overwrote the additions from `hr_work_entry_contract_enterprise` itself. Solution -------- Re-include the `Controller`, `Model` and `buttonTemplate` values when updating the registry. opw-3969616
This fix corrects how the system matches bank transactions to sales orders when partial payments have been made. Previously, when a bank transaction referenced a sales order, the system would incorrectly try to match it against the remaining invoice balance instead of the actual payment amount, creating confusion about duplicate payments. Now the system properly recognizes existing payments first before attempting invoice reconciliation.
Original PR description
Before, if a bank transaction contain the sale order reference, the reconciliation model will try to reconcile with the invoices created from this sale order but ignore the payment records for those. This leads to situations where it looks like there were two payments on the invoices (one payment record and one bank transaction) while there is just one partial payment. Steps to reproduce: 0/ Have default reconciliation models 1/ Create SO for 100$ and confirm invoice 2/ Partially pay invoice for 70$ 3/ Create bank transaction with SO ref and same partner for 70$ 4/ Match transaction => will match the 30$ residual of the invoice instead of 70$ payment Now, the system will try to reconcile with the payments of those invoices first before considering invoice reconciliation. opw-3904177 Forward-Port-Of: odoo/enterprise#62972
The Paid Time Off Allocation wizard in the Belgian Payroll module was crashing when users selected a department and then a time off type. This fix corrects a problematic database query that was causing the error, and also removes unnecessary subqueries to improve performance.
Original PR description
In the Payroll app with a Belgian company, we can do Reporting > Paid Time Off Allocation. This opens a wizard and if we filled the department then the time off type, the app would crash because of a terrible sql query. Also, the query was doing unnecessary subqueries that have been removed. Task: 3878904 Forward-Port-Of: odoo/enterprise#62293
This fix resolves a system error that occurred when users tried to create invoices for refunded Point of Sale orders in Mexico. The issue was caused by missing data being concatenated with text, which has now been corrected. Users can now successfully process refunds and generate invoices without encountering errors.
Original PR description
When a user tries to validate an invoice of the refunded order a traceback will occur. Steps to produce: - Install 'l10n_mx_edi_pos' module. - Switch to a company whose country code is 'MX'(Mexico).…
When a user tries to validate an invoice of the refunded order a traceback will occur.
Steps to produce:
- Install 'l10n_mx_edi_pos' module.
- Switch to a company whose country code is 'MX'(Mexico).
- Open 'Point of Sale' and New Session.
- Select any products > payment > Select payment method > Invoice > Select customer > Validate.
- Click on 'Next Order'.
- Click on 'Refund and select your order.
- Click on refund > payment > Select payment method > Invoice > Validate.
- Error will be generated.
Traceback on sentry:
```
TypeError: can only concatenate str (not "bool") to str
File "odoo/http.py", line 2252, in __call__
response = request._serve_db()
File "odoo/http.py", line 1828, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1848, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1826, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1833, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2058, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 42, in call_button
action = self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/saas-17.1/l10n_mx_edi_pos/models/pos_order.py", line 108, in action_pos_order_invoice
action_values = super().action_pos_order_invoice()
File "addons/point_of_sale/models/pos_order.py", line 856, in action_pos_order_invoice
res = self._generate_pos_order_invoice()
File "addons/point_of_sale/models/pos_order.py", line 873, in _generate_pos_order_invoice
move_vals = order._prepare_invoice_vals()
File "addons/pos_sale/models/pos_order.py", line 32, in _prepare_invoice_vals
invoice_vals = super(PosOrder, self)._prepare_invoice_vals()
File "home/odoo/src/enterprise/saas-17.1/l10n_mx_edi_pos/models/pos_order.py", line 150, in _prepare_invoice_vals
vals['l10n_mx_edi_cfdi_origin'] = '03|' + self.refunded_order_id.account_move.l10n_mx_edi_cfdi_uuid
```
This is because 'l10n_mx_edi_cfdi_uuid' is empty at [1] and a string concatenate with it.
link [1]: https://github.com/odoo/enterprise/blob/1502f8b3e519d41f4a58e2acc846f315f6f5eeda/l10n_mx_edi_pos/models/pos_order.py#L150
This commit solves the above issue while checking the existence of
'l10n_mx_edi_cfdi_uuid' while creating the invoice for refund_order
sentry-4935781389
Forward-Port-Of: odoo/enterprise#59873This update fixes a crash in the Belgian financial reports module that occurred when processing partners with missing or invalid VAT numbers. The system now gracefully handles these edge cases instead of failing, ensuring smoother report generation for all partner records regardless of VAT data completeness.
Original PR description
The aim of this commit is to make the code more robust and defensive by handling a bad value for the `vat` field. Context: Partners having a `partner.vat=False` were making the compact function crash. Before the commit: The flow crash even if the value shouldn't be processed. After the commit: The flow is smooth. task-id: None Forward-Port-Of: odoo/enterprise#63865
This fix resolves an issue where spreadsheet files were incorrectly identified when WPS Office is installed on a computer. WPS Office changes how the system recognizes Excel files, causing them to be misidentified. The update ensures that spreadsheet documents are properly recognized regardless of whether WPS Office is present on the system.
Original PR description
On computers where WPS office is installed, the mimetype of office files (eg. .docx, .xslx) the mimetype recognition is altered (at least on linux machines [^1][^2]). The detection of xlsx files in Documents did not account for the specific mimetype set by WPS Office. [^1]: https://forum.puppylinux.com/viewtopic.php?t=2379&i=1 [^2]: https://askubuntu.com/questions/1360278/wps-office-messing-up-mime-types-associated-with-office-documents Task-3915912 Forward-Port-Of: odoo/enterprise#63719 Forward-Port-Of: odoo/enterprise#62100
This fix resolves an issue where the kitchen preparation display was not showing all items when a product was ordered multiple times with internal notes added. Previously, duplicate items with notes would not appear correctly on the display, causing kitchen staff to miss orders. Now all items display properly regardless of whether notes are attached.
Original PR description
Current behavior: When you add a product with an internal note to an order the preparation display is not updated correctly. Steps to reproduce: - Open PoS restaurant session - Add product A, and press Order button - Add product A, add an internal note, and press Order button - Go on the preparation display, there is only one product A opw-3902869
This update removes unnecessary error messages that were appearing during automated tests for the room booking feature. The tests were trying to load background images for test rooms that don't actually exist, causing false error alerts. The fix cleans up these test errors without affecting how the feature works for real users.
Original PR description
Purpose: -------- The frontend room view uses the "background-image" property to add a background image if one has been set on the room. This causes several 404 errors in qunit tests because the test room does not exist, resulting in a "room not found" exception when the browser tries to get the background image. This commit patches the view in the tests to remove the url part of the background-image property, so that the background image is not fetched anymore. In order to make this patch possible, the background-image property value has been moved inside a getter. Task-3943099
This fix corrects how batch payments calculate the total amount when payments are in different currencies. Previously, the system was not properly converting individual payment amounts to the company's base currency before summing them, resulting in incorrect batch totals. Now batch payments will display the correct total amount regardless of the currencies involved.
Original PR description
Steps to reproduce: - Go to Accounting > Vendor > Payments. - Create one "Send" payment for 500 USD to Abigail Peterson and confirm. - Create one "Send" payment for 500 EUR to Abigail Peterson and confirm. - Go to Accounting > Vendor > Batch Payments. - Create a new batch payment and add the two payments. - Print the batch payment (either Print button or Action > Print Batch Payment) Issue: The sum amount in company currency is not correct Cause: We do not convert the line amount (and we apparently don't want to use the payment amount for reconciliation) opw-3911484 Forward-Port-Of: odoo/enterprise#63857 Forward-Port-Of: odoo/enterprise#62553
This update corrects the spacing around percentage symbols displayed in the planning calendar event popover. When users click on calendar events to view details, the percentage indicator now displays with consistent, proper spacing for a more polished appearance.
Original PR description
Steps to reproduce: 1. Install the planning module and open it. 2. Open events in calendar view. 3. Click on any event. 4. In the calendar popover, observe the spacing around the percentage (%). Issue: There is inconsistency in spacing around the percentage (%). Solution: Add a space before the percentage and remove the space after it in the common calendar popover. task-3908815 Forward-Port-Of: odoo/enterprise#62083