Daily updates from Odoo
Navigate
Branch
Wednesday, November 27, 2024
67 changes
18 changes
Resolved issues and error corrections
This update fixes display and scrolling problems in the email editor used by Email Marketing and Marketing Automation. Users should have a smoother editing experience, with the snippet sidebar no longer hiding scrollbars, overlapping content, or extending beyond dialogs.
Original PR description
This PR fixes multiple issues related to the mass_mailing_html_field used in `marketing_automation` and in `mass_mailing` modules. 1) The iframe scrollbar is hidden behind the snippets sidebar in fullscreen mode - concerns: mass_mailing, marketing_automation 2) In fullscreen mode, the iframe is not scrollable while dragging a snippet from the sidebar - concerns: mass_Mailing, marketing_automation 3) The snippets sidebar overlaps with the content - concerns: mass_mailing, marketing_automation 4) The snippets sidebar height in a dialog is too big - concerns: marketing_automation See individual commits for further explanation. task-4178640 Co-authored-by: Astik Singh <assi@odoo.com> Co-authored-by: Damien Abeloos <abd@odoo.com> Co-authored-by: Mahdi Cheikh Rouhou <macr@odoo.com> Co-authored-by: Shubham Thanki <shut@odoo.com>
Miscellaneous changes
Otherwise the patches remain in place, and it's possible for other modules to just assume things work if they happen to run after `test_website`. Forward-Port-Of: odoo/odoo#188608
Original PR description
Otherwise the patches remain in place, and it's possible for other modules to just assume things work if they happen to run after `test_website`. Forward-Port-Of: odoo/odoo#188608
This commit fixes two issues with the editable grouped list view. In a group, click on a row to switch it into edition and edit an input field (e.g. a char). Do not blur the input. From this state, - clicking on the group header to close the group, or - clicking on "Add a line" to add a new record would both lead to the change being lost. This commit ensures the keep the change in those flows by correctly calling `leaveEditMode` before closing the group or adding the new record. opw~41
Original PR description
This commit fixes two issues with the editable grouped list view. In a group, click on a row to switch it into edition and edit an input field (e.g. a char). Do not blur the input. From this state, - clicking on the group header to close the group, or - clicking on "Add a line" to add a new record would both lead to the change being lost. This commit ensures the keep the change in those flows by correctly calling `leaveEditMode` before closing the group or adding the new record. opw~4174315 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#188611
Release notes: https://github.com/odoo/owl/releases/tag/v2.5.0 https://github.com/odoo/owl/releases/tag/v2.5.1 Forward-Port-Of: odoo/odoo#188406
Original PR description
Release notes: https://github.com/odoo/owl/releases/tag/v2.5.0 https://github.com/odoo/owl/releases/tag/v2.5.1 Forward-Port-Of: odoo/odoo#188406
In a previous commit [1], we reduced the number of call to the getter `editedRecord` which does a heavy operation. In `DynamicList.leaveEditMode` we saved the edited record but it could become outdated so we need to compute at some point. [1]: b1191a7b99d5e374f92b62c541ac058cff26d4d7 Forward-Port-Of: odoo/odoo#188610
Original PR description
In a previous commit [1], we reduced the number of call to the getter `editedRecord` which does a heavy operation. In `DynamicList.leaveEditMode` we saved the edited record but it could become outdated so we need to compute at some point. [1]: b1191a7b99d5e374f92b62c541ac058cff26d4d7 Forward-Port-Of: odoo/odoo#188610
Steps to reproduce: - create two workcenters, one having a shift with a lunch pause (WC A) (i.e. the default 40hours week will do the job), the other having no lunch pause (WC B). - create a MO with a work order of a sufficient duration to be splitted in two part (before and after lunch) (6h for instance) and add it on the WC A. - plan the MO - go to the planning by workcenter view - move the WO from WC A to WC B (in the same day) - move it back to WC A (in the same day) - move the WO a
Original PR description
Steps to reproduce: - create two workcenters, one having a shift with a lunch pause (WC A) (i.e. the default 40hours week will do the job), the other having no lunch pause (WC B). - create a MO with…
Steps to reproduce: - create two workcenters, one having a shift with a lunch pause (WC A) (i.e. the default 40hours week will do the job), the other having no lunch pause (WC B). - create a MO with a work order of a sufficient duration to be splitted in two part (before and after lunch) (6h for instance) and add it on the WC A. - plan the MO - go to the planning by workcenter view - move the WO from WC A to WC B (in the same day) - move it back to WC A (in the same day) - move the WO a day later (on the same WC) Problem: The duration displayed changes from 6h (correct one) to 7h on the first step, which is incorrect. Moving the MO back to it's original WC will change the time to 5h which is also incorrect, but moving it a day later fixes the issue (6h) The problem is that computing the date_finished in the write method is incorrect when `workcenter_id` is in vals, as calling `_calculate_date_finished` will return the value computed with the non-modified yet workcenter opw-4321104 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187864
The issue: In the mobile view of the website page /profile/users, the ranking table's content overflows the screen. How to reproduce the issue: -Install the website_profile and website_slides_survey modules. -Go to the /profile/users page in the website view. -Switch to mobile view. Explanation: Table overflowed on smaller screens due to missing responsive wrapper. opw-4120453 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of
Original PR description
The issue: In the mobile view of the website page /profile/users, the ranking table's content overflows the screen. How to reproduce the issue: -Install the website_profile and website_slides_survey modules. -Go to the /profile/users page in the website view. -Switch to mobile view. Explanation: Table overflowed on smaller screens due to missing responsive wrapper. opw-4120453 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#183291
Steps to reproduce: - go to Employees>Configuration>Skill Types - create new skill or edit an existing one - change name or progress percentage of levels or add a new level - toggle default level - The fields revert to their original state, and only the toggle switch cause: it does not save other fields and just saves the default button when clicked solution: add this.props.record.model.root.save(); so it saves the record and not just the toggle button only. task-4223036 Forwa
Original PR description
Steps to reproduce: - go to Employees>Configuration>Skill Types - create new skill or edit an existing one - change name or progress percentage of levels or add a new level - toggle default level - The fields revert to their original state, and only the toggle switch cause: it does not save other fields and just saves the default button when clicked solution: add this.props.record.model.root.save(); so it saves the record and not just the toggle button only. task-4223036 Forward-Port-Of: odoo/odoo#183369
Issue: ====== `enter` command doesnt work properly for `pre` element inside list element. Steps to reproduce the issue: ============================= - Add a list - Add a code block with `/code` - Add sone text - Put the cursor at the end of the text - click `enter` - It adds a `br` element and puts the selection at the start. Origin of the issue: ==================== The `oEnter` function of the `pre` element is triggered which adds a `p` element just after the `pre` element in
Original PR description
Issue: ====== `enter` command doesnt work properly for `pre` element inside list element. Steps to reproduce the issue: ============================= - Add a list - Add a code block with `/code` - Add sone text - Put the cursor at the end of the text - click `enter` - It adds a `br` element and puts the selection at the start. Origin of the issue: ==================== The `oEnter` function of the `pre` element is triggered which adds a `p` element just after the `pre` element inside the same `li` element. Now in sanitiwe we unwrap the p elements inside `li` which leaves us with only a `br` after the `pre`. Since we put the selection at the start of the newly added then removed `p` element, the final selection will not behave correctly. Solution: ========= We single out the case when the parent element of the `pre` is a `li` and treat it as a break inside a `li`. task-4187676 Forward-Port-Of: odoo/odoo#188056 Forward-Port-Of: odoo/odoo#180268
Currently, customers are unable to invoice orders through a pos session if they use the Bulgarian localization. Steps to reproduce: ------------------- * Install **point_of_sale** and **l10n_bg** * Change the current company to the Bulgarian one * Set up a shop and open it * Make an order, select any customer * Select payment * Select the invoice option * Select payment method and validate > Observation: Traceback appears psycopg2.errors.CheckViolation: new row for relation "accou
Original PR description
Currently, customers are unable to invoice orders through a pos session if they use the Bulgarian localization. Steps to reproduce: ------------------- * Install **point_of_sale** and **l10n_bg** *…
Currently, customers are unable to invoice orders through a pos session if they use the Bulgarian localization. Steps to reproduce: ------------------- * Install **point_of_sale** and **l10n_bg** * Change the current company to the Bulgarian one * Set up a shop and open it * Make an order, select any customer * Select payment * Select the invoice option * Select payment method and validate > Observation: Traceback appears psycopg2.errors.CheckViolation: new row for relation "account_move_line" violates check constraint "account_move_line_check_accountable_required_fields" Why the fix: ------------ The constraints is violated because the value for account_id does not exist. https://github.com/odoo/odoo/blob/4601acea15feea4780269b4a333f18435904b684/addons/point_of_sale/models/pos_payment.py#L115-L117 We observe that `self.company_id.account_default_pos_receivable_account_id.id` is not set. This field belogns to the `account` module but can only be modified if the module `account_accountant` because of the group `group_account_readonly`. https://github.com/odoo/odoo/blob/4601acea15feea4780269b4a333f18435904b684/addons/point_of_sale/views/res_config_settings_views.xml#L163-L167 Other localizations do not have the issue as they set the default account through the data in `account`module. https://github.com/odoo/odoo/blob/4601acea15feea4780269b4a333f18435904b684/addons/l10n_au/data/account_chart_template_data.xml#L14 https://github.com/odoo/odoo/blob/4601acea15feea4780269b4a333f18435904b684/addons/l10n_au/data/account.account.template.csv#L8 opw-4279804 Forward-Port-Of: odoo/odoo#188018 Forward-Port-Of: odoo/odoo#186551
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#188190
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#188190
**Problem**: This commit: https://github.com/odoo/odoo/commit/655e1ea63cf469937c53762e93f93da40b6b9099 breaks the behavior of the `list_renderer` when an autocomplete is present in the same view. Specifically, it prevents discarding a row when clicking outside the input. **Solution**: Revert the commit, as the issue it aimed to fix (opw-3180055) is now resolved by the addition of the "Search more" functionality, rendering the commit unnecessary. **Steps to reproduce**: 1. Open the *Pu
Original PR description
**Problem**: This commit: https://github.com/odoo/odoo/commit/655e1ea63cf469937c53762e93f93da40b6b9099 breaks the behavior of the `list_renderer` when an autocomplete is present in the same view. Specifically, it prevents discarding a row when clicking outside the input. **Solution**: Revert the commit, as the issue it aimed to fix (opw-3180055) is now resolved by the addition of the "Search more" functionality, rendering the commit unnecessary. **Steps to reproduce**: 1. Open the *Purchase* tab on a product form. 2. Add a vendor line (with or without selecting a vendor). 3. Focus on the vendor line, then click to add *Vendor Taxes*. 4. After selecting a tax, observe that the focus incorrectly shifts back to the vendor line instead of remaining on the *Vendor Taxes* input. opw-4263276 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187872
Basic user can close a PoS session that they did not open if the user logged on the DB is the same as the one linked to the cashier Steps to reproduce: ------------------- * Setup Mitchell Admin as advanced right user on PoS * Setup Marc Demo as basic right user on PoS * Open PoS as Mitchell Admin and login as cashier Marc Demo > Observation: You are not able to close the session * Log out of the Db and log back in as Marc Demo * Open the same PoS > Observation: You are able to close
Original PR description
Basic user can close a PoS session that they did not open if the user logged on the DB is the same as the one linked to the cashier Steps to reproduce: ------------------- * Setup Mitchell Admin as advanced right user on PoS * Setup Marc Demo as basic right user on PoS * Open PoS as Mitchell Admin and login as cashier Marc Demo > Observation: You are not able to close the session * Log out of the Db and log back in as Marc Demo * Open the same PoS > Observation: You are able to close the session Why the fix: ------------ To check if a user was able to close the session we were checking if the user logged in the Db was the same as the one in the cashier. But we need to check who opened the PoS not the current logged in user. opw-4215083 Forward-Port-Of: odoo/odoo#188121
*: web_editor, website For some reason, the tour introduced by [1] started failing on the runbot for its 17.0 version, showcasing turnstile errors. Not sure why but this tour should never have been making external calls to video URL anyway and solving that seems to solve the main issue. Specific turnstile problems will be investigated later. [1]: https://github.com/odoo/odoo/commit/2789b50bc72cc801fbd5005f74e2cd2655040cbb runbot-107885
Original PR description
*: web_editor, website
For some reason, the tour introduced by [1] started failing on the
runbot for its 17.0 version, showcasing turnstile errors. Not sure why
but this tour should never have been making external calls to video URL
anyway and solving that seems to solve the main issue.
Specific turnstile problems will be investigated later.
[1]: https://github.com/odoo/odoo/commit/2789b50bc72cc801fbd5005f74e2cd2655040cbb
runbot-107885
Forward-Port-Of: odoo/odoo#188214### Description of the issue/feature this PR addresses: On selecting multiple cells in a table and applying formatting commands like (Bold, Italic, Underline, and Strikethrough) resulted in the loss of selection. The root cause of this issue was identified in the `cleanForSave()` function, which triggered `deselectTable()` during command execution, removing the entire selection from the table results in collapsing the selection to start. ### Approach: This PR addresses the issue by rest
Original PR description
### Description of the issue/feature this PR addresses: On selecting multiple cells in a table and applying formatting commands like (Bold, Italic, Underline, and Strikethrough) resulted in the loss…
### Description of the issue/feature this PR addresses: On selecting multiple cells in a table and applying formatting commands like (Bold, Italic, Underline, and Strikethrough) resulted in the loss of selection. The root cause of this issue was identified in the `cleanForSave()` function, which triggered `deselectTable()` during command execution, removing the entire selection from the table results in collapsing the selection to start. ### Approach: This PR addresses the issue by restoring selection using `historyResetLatestComputedSelection()` after executing the command, ensuring that the selection is preserved as intended. Additionally, a specific issue related to applying heading tags was encountered, stemming from the call to `getDeepRange()` within the `formatSelection()` function, disrupting proper selection restoration, particularly in the case of headings. ### Desired behavior after PR is merged: We maintain the selection after applying formatting commands (Bold, Italic, Underline, and Strikethrough) in table. task-3822527 Forward-Port-Of: odoo/odoo#188452 Forward-Port-Of: odoo/odoo#165089
Before this commit, all fields of product tags were loaded into PoS, which was unnecessary. For example, product templates field and product variants field, which contain all products with that tag, were loaded. This caused performance issues when there were a high number of products using tags. This commit fixes the issue by only loading the name field, which is needed in PoS. opw-4343131 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Po
Original PR description
Before this commit, all fields of product tags were loaded into PoS, which was unnecessary. For example, product templates field and product variants field, which contain all products with that tag, were loaded. This caused performance issues when there were a high number of products using tags. This commit fixes the issue by only loading the name field, which is needed in PoS. opw-4343131 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188405
Issue ===== When a GS1 barcode is scanned, if it starts with a FNC1, it can't be parsed. How to reproduce ================ - In Inventory Settings, select "Default GS1 Nomenclature" as the used nomenclature; - Create a product with a valid EAN13 as barcode (eg. 1234567891231); - Open the Barcode app, then the Inventory Adjustments; - Scan a GS1 barcode for the created product who start with the FNC1 (eg. "\x1D0101234567891231") -> The product's barcode is not decoded. Solution
Original PR description
Issue ===== When a GS1 barcode is scanned, if it starts with a FNC1, it can't be parsed. How to reproduce ================ - In Inventory Settings, select "Default GS1 Nomenclature" as the used nomenclature; - Create a product with a valid EAN13 as barcode (eg. 1234567891231); - Open the Barcode app, then the Inventory Adjustments; - Scan a GS1 barcode for the created product who start with the FNC1 (eg. "\x1D0101234567891231") -> The product's barcode is not decoded. Solution ======== To fix this issue, before to be parsed, the given barcode will be cleaned and if it starts with a FNC1, it will be removed from the string. opw-4118637 Forward-Port-Of: odoo/odoo#187925 Forward-Port-Of: odoo/odoo#187875
This commit fixes a bug introduced in the PR ( https://github.com/odoo/odoo/pull/186434 ). This PR aims to batch operations on svls by grouping based on products. However, it didn't take into account the possibility where svls could belong to different companies. This would lead to a singleton error upon referencing the field "anglo_saxon_accounting". To fix the problem, grouping svls must be done based on a composite key based on product and value of "anglo_saxon_accounting". --- I con
Original PR description
This commit fixes a bug introduced in the PR ( https://github.com/odoo/odoo/pull/186434 ). This PR aims to batch operations on svls by grouping based on products. However, it didn't take into account the possibility where svls could belong to different companies. This would lead to a singleton error upon referencing the field "anglo_saxon_accounting". To fix the problem, grouping svls must be done based on a composite key based on product and value of "anglo_saxon_accounting". --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188680
46 changes
Security fixes and vulnerability patches
Appointment-related access checks were reorganized so each record type can manage its own rules. This reduces the chance that shared access logic could accidentally expose sensitive information while keeping normal permitted access efficient.
Original PR description
This commit cleans up the code related to `_find_record_check_access` method: - By moving `_find_record_check_access` from `ir.binary` into the models, each model can add its own behavior without affecting others. This change reduces the risk of exposing sensitive data through many overrides of `_find_record_check_access`. - `_can_elevate_access` method is now responsible for checking if it's possible to bypass the ACLs, but this method only applies when there is no standard access read to the record. If a record is allowed to be read by ACLs, we don't want to do an extra check. Related to odoo/odoo#186003
Enhancements to existing features
Recruitment offers will now move to a cancelled state when the related signature request is cancelled. This keeps offer statuses accurate for HR teams and adds a note in the chatter log so users can see why the offer changed.
Original PR description
If a requested signature is cancelled, it does not change the status of the offers to "Cancelled." after this PR, a "Cancelled" state for recruitment offers is added Cancelling a requested signature will now update the offers to the "Canceled" state and display a message in the chatter log. task-4232021
Payroll localization modules now show the relevant country flag, making it easier for users to identify country-specific payroll features. This improves clarity when browsing or managing payroll-related apps across multiple countries.
Original PR description
* = l10n_{ae, au, bd, be, ch, eg, fr, hk, id, in, jo, ke, lt, lu, ma, mx, nl, pk, pl, ro, sa sk, tr, us}_hr_payroll_account, l10n_be_hr_payroll_{attendance, fleet}
With this commit, the country flag will be shown for module related to the payroll localization
task-4351924The Indian payroll contract setup has been adjusted to align with the Indian Employee Pay structure. This helps payroll-related demo and contract data better reflect the expected local payroll format for India.
Original PR description
In this PR the structure of the contract is changed to Indian Employee Pay Task-4250810
Spreadsheet insertion tabs now appear only when the user has the required access rights for the related business records. This reduces confusion and helps ensure users only see options they are allowed to use.
Original PR description
…y tab according access rights With this commit, the tabs in the insertion dialog are only displayed if the user has the necessary access rights per model. Task: 3950489
This update improves internal project scheduling logic to run more efficiently and updates documentation formatting for maintainability. Business users may see slightly smoother performance in project planning views, with no expected workflow changes.
Original PR description
[IMP] project: Perf and Docstrings improvements
Before this commit:
- Docstrings for for move back/for{ward} methods were not following the
correct rST/Sphinx format.
In this commit:
- Docstrings were adapted accordingly.
- Using any instead of not in for better perf.
- Using isdisjoint for sets instead of & for better perf.
task-4150229The IoT long-polling code now uses a built-in browser capability instead of relying on an extra software library. This reduces unnecessary loading in the IoT module and helps keep the code simpler and easier to maintain, with no expected visible change for users.
Original PR description
This commit replaces the use of `$.ajax` by a standard `fetch` and removes the load of jquery from iot.
Odoo can now create a dedicated credit card journal when users add card details manually or connect through a bank. This makes credit card synchronization easier to set up and helps companies keep card transactions organized separately from bank accounts.
Original PR description
This commit will allow the generation of a credit card journal when either entering manually the information of the card in the iframe or by connecting to a bank. task: 4197153
Restaurant table bookings now show customer questions from the website directly in the booking form, helping staff see relevant details sooner. The booking views are also cleaner by hiding no-show appointments and improving the planning view for easier reservation management.
Original PR description
In this commit: ========== We are enhancing the user experience for the table booking flow at the restaurant. Questions added to the website during the table booking process will now be displayed in the booking form. Additionally, we will no longer show appointments that have a "No Show" status. We have also improved the Gantt view for managing bookings. task-4283805
The payroll batch payslip wizard now lets users choose employees using additional criteria. This makes payroll preparation more targeted and efficient, reducing manual selection work for HR teams.
Original PR description
This PR improves the batch payslip generation wizard by adding new selection fields with multiple options. These options allow payslip generation for employees based on specific criteria, similar to the functionality in the multiple leaves wizard. task-4266447
Payroll tests now reflect that pending or partially approved leave requests no longer create conflicting work entries. This helps keep payroll validation aligned with the latest leave management behavior and reduces false conflict warnings.
Original PR description
Previously, if you created a leave request without approving it or if the leave request required 2 approvers and it was only approved the first time, then there would be a conflicting work entry.However, this was changed by the community PR https://github.com/odoo/odoo/pull/188172 and there are no conflicting work entries now in that case. This commit updates a testcase to match the new behavior. task-4342340
Payroll batch and payslip status colors have been aligned so users see the same visual meaning in both places. This reduces confusion when reviewing payroll processing status across payroll screens.
Original PR description
This PR generalizes the state color of the payslip and batch. Earlier, the state color of the payslip and batch was different, which created confusion among the users. Task-4317973
Payroll users can no longer create a new employee directly while preparing a payslip. This helps ensure payslips are only linked to properly set up employees with valid contracts, reducing payroll processing errors.
Original PR description
This PR enhances the payslip process by restricting the creation of employees directly from payslips. Creating an employee on the fly during payslip generation is not practical, as a valid employee contract is a essential for processing any payslip. Without an active contract, it is neither meaningful nor functional to create or associate an employee with a payslip. task-4312449
This update improves the speed of automated checks used for the Knowledge and VoIP apps. It helps developers validate changes more quickly, with no direct change expected for end users.
Original PR description
Enterprise counter-part. https://github.com/odoo/odoo/pull/188638
The Belgian POS payment interface now handles quick-add number buttons more intuitively, adding values like +50 to the current amount instead of replacing it. This makes cashier input behavior more predictable and simplifies the underlying flow for easier maintenance.
Original PR description
Simply number popup and change numpad behavior. Before, when clicking on a button with `+` like `+50` it was replacing the number in the buffer with the new number. Now, it adds the number to the buffer. Also, the number buffer service was removed and the buffer is now managed by the buffer service. taskId: 4349322
Room booking links now include the room identifier so the system can consistently open the intended room. This reduces the chance of users landing on the wrong room page and makes booking flows more dependable.
Original PR description
This commit reinforces the controller routes by adding the ID of a room as parameter so as to ensure that the correct room is found. task-4015880
A new reusable header component was added for WhatsApp discussions, making the interface easier to maintain consistently. This is mostly an internal improvement that supports cleaner styling and future updates without changing core business workflows.
Original PR description
added new component called `DiscussHeader` to improve re-usability in discuss to follow BEM its required to change classNames. related PR: [odoo/ #172042](https://github.com/odoo/odoo/pull/172042) task-3764236
Resolved issues and error corrections
Amazon order processing tests now fail clearly when an order-processing error occurs instead of hiding it through an automatic rollback. Test data was also corrected so invalid Amazon order identifiers are caught, improving confidence that Amazon sales workflows behave as expected.
Original PR description
While testing, if we get an error while trying to process an order, `rollback` is called, we prevent this by raising the exception. Moreover, in the test data, the AmazonOrderId was a dict instead of a string, that error was silently ignored (test passed, but shouldn't).
This update adjusts an internal timesheet test after company-based employee access rules were restored. It helps ensure timesheet functionality continues to be validated correctly in multi-company setups, with no direct change expected for everyday users.
Original PR description
This reverts commit 73223682daaaa6d2ed2f062705917a59716209b4 since the multi-company rule in `hr.employee` and `hr.employee.public` models has been re-introduced.
Fixes the bulk approval action for time off allocations that require two approvers, so requests in the first approval stage now move forward as expected. This helps managers process employee leave allocations reliably without manual workarounds or stalled requests.
Original PR description
Steps to reproduce the bug: 1. Create a new time off type and set `approval` to By employee's approver and time off officer. 2. Create a new allocation: * Use the time off type created above. * Set the number of days to 20. 3. Save the created allocation. 4. Go to `Management -> Allocations`. 5. Select the created allocation and press on the actions cog. 6. Press on `Approve Allocations`. 7. The allocation state doesn't change to `second approval`. The action `Approve Allocations` doesn't take into account the allocations that are in the first stage of approval. To fix the issue, `Approve Allocations` action is updated to take these allocations into account. Also, `action_validate` and `action_approve` are both now being combined into `action_approve`. task-4207884
Miscellaneous changes
Problem: In a multi-company environment where a user has an employee record per company, the approval request will retrieve the incorrect employee record upon confirmation, which leads to an access error. Purpose: Upon confirming the approval request, the employee record from the same company as the request should be fetched, rather than retrieving the latest employee record made for the user. Steps to reproduce on Runbot: 1. Install Approvals and Employees 2. Create a default company
Original PR description
Problem: In a multi-company environment where a user has an employee record per company, the approval request will retrieve the incorrect employee record upon confirmation, which leads to an access…
Problem: In a multi-company environment where a user has an employee record per company, the approval request will retrieve the incorrect employee record upon confirmation, which leads to an access error. Purpose: Upon confirming the approval request, the employee record from the same company as the request should be fetched, rather than retrieving the latest employee record made for the user. Steps to reproduce on Runbot: 1. Install Approvals and Employees 2. Create a default company 3. Create a non-default company 4. Create a Test Employee user on the default company, enable multi-company rights, and create an employee record for the default company. Switch to the non-default company and create an employee record for the user. 5. Repeat Step 4 when creating a Test Manager user 6. On the employee record for Test Employee, set Test Manager as the manager on both companies. 7. Create an approval type on the default company and set "Manager is required approver" 8. Login as Test Employee and create an approval request for the approval type created in Step 7 on the default company 9. Submit the request and an AccessError occurs Note: Bug was not reproducible on previous versions because the record rule for Employee multi company rule for Employees module are different. opw-4212341 Forward-Port-Of: odoo/enterprise#71955
Steps to reproduce ================== - Have a gantt arch with a default_scale that is not part of scales ```xml <gantt scales="week,month" default_scale"day">...</gantt> ``` => Cannot destructure property 'defaultRange' of 'metaData.scales[scaleId]' Solution ======== If we set a default scale that is not part of the scales, add it to the list of allowed scales. opw-4175183 Forward-Port-Of: odoo/enterprise#74525
Original PR description
Steps to reproduce ================== - Have a gantt arch with a default_scale that is not part of scales ```xml <gantt scales="week,month" default_scale"day">...</gantt> ``` => Cannot destructure property 'defaultRange' of 'metaData.scales[scaleId]' Solution ======== If we set a default scale that is not part of the scales, add it to the list of allowed scales. opw-4175183 Forward-Port-Of: odoo/enterprise#74525
### Steps to reproduce: - Install Data Cleaning and Helpdesk modules - Create 2 Helpdesk tickets with conditions: - at least 1 helpdesk ticket has an SLA policy and is in a stage excluded by the SLA policy - at least 1 helpdesk ticket doesn't have an SLA deadline and has an SLA policy and is also in a stage excluded by the SLA policy - Merge those 2 tickets - Notice a traceback pops-up ### Current behavior before PR: In this commit https://github.com/odoo/enterprise/pull/69352/
Original PR description
### Steps to reproduce: - Install Data Cleaning and Helpdesk modules - Create 2 Helpdesk tickets with conditions: - at least 1 helpdesk ticket has an SLA policy and is in a stage excluded by the SLA…
### Steps to reproduce: - Install Data Cleaning and Helpdesk modules - Create 2 Helpdesk tickets with conditions: - at least 1 helpdesk ticket has an SLA policy and is in a stage excluded by the SLA policy - at least 1 helpdesk ticket doesn't have an SLA deadline and has an SLA policy and is also in a stage excluded by the SLA policy - Merge those 2 tickets - Notice a traceback pops-up ### Current behavior before PR: In this commit https://github.com/odoo/enterprise/pull/69352/commits/97e83104dad816a7a65345dea74a66e5dbea94cb a new merge method was introduced but in the new file we created we are importing datetime from datetime and then using datetime.datetime and since we are already importing the sepcific class we don't need to call it like module.class.method ### Desired behavior after PR is merged: We are calling the method directly from the class without using the module before the call so it is only datetime.max opw-4330793 Forward-Port-Of: odoo/enterprise#74515 Forward-Port-Of: odoo/enterprise#74383
Apply [this fix] to templates introduced with [this commit]. The purpose is to prevent images that are the only child of their parent from taking too much space. Furthermore, fix the src path for some of these templates. [this fix]: https://github.com/odoo/odoo/commit/d5297a75f50022b406b226ebf4c300f4bd033c3d [this commit]: https://github.com/odoo/enterprise/commit/fd98660e352512e0b74d91958707687978154833 task-4178640 Forward-Port-Of: odoo/enterprise#74192
Original PR description
Apply [this fix] to templates introduced with [this commit]. The purpose is to prevent images that are the only child of their parent from taking too much space. Furthermore, fix the src path for some of these templates. [this fix]: https://github.com/odoo/odoo/commit/d5297a75f50022b406b226ebf4c300f4bd033c3d [this commit]: https://github.com/odoo/enterprise/commit/fd98660e352512e0b74d91958707687978154833 task-4178640 Forward-Port-Of: odoo/enterprise#74192
A checkbox to indicate if a Sick leave is a relapse of a previous sick leave was added to version 18.0. Regular users can see the checkbox when creating or viewing sick leave while the intention was for only time off officers to be able to see it. This patch fixes this issue by assigning the checkbox to the correct group. task-4354558 Forward-Port-Of: odoo/enterprise#74422
Original PR description
A checkbox to indicate if a Sick leave is a relapse of a previous sick leave was added to version 18.0. Regular users can see the checkbox when creating or viewing sick leave while the intention was for only time off officers to be able to see it. This patch fixes this issue by assigning the checkbox to the correct group. task-4354558 Forward-Port-Of: odoo/enterprise#74422
After this commit https://github.com/odoo/enterprise/commit/31033a6863c841d7d0d5e434331c8a34420a3374 the contract could be closed with end_date at the end of the current period. There are several cases when the end_date should still forced as "today": - closing from the backend - expiration cron taksid: 4358288 Forward-Port-Of: odoo/enterprise#74573
Original PR description
After this commit https://github.com/odoo/enterprise/commit/31033a6863c841d7d0d5e434331c8a34420a3374 the contract could be closed with end_date at the end of the current period. There are several cases when the end_date should still forced as "today": - closing from the backend - expiration cron taksid: 4358288 Forward-Port-Of: odoo/enterprise#74573
Objective --------- Many countries want to use the official rates provided by their National Bank in their database. A lot of them were already implemented, and now it's the turn of the Hungarian National Bank. Solution --------- The MNB has implemented a SOAP service to access the latest rates. The service is available at this address http://www.mnb.hu/arfolyamok.asmx?wsdl and the service operation `GetCurrentExchangeRates()` returns: ```xml <MNBCurrentExchangeRates> <Da
Original PR description
Objective
---------
Many countries want to use the official rates provided by their National
Bank in their database. A lot of them were already implemented, and now
it's the turn of the Hungarian National Bank.
Solution
---------
The MNB has implemented a SOAP service to access the latest rates.
The service is available at this address
http://www.mnb.hu/arfolyamok.asmx?wsdl
and the service operation `GetCurrentExchangeRates()`
returns:
```xml
<MNBCurrentExchangeRates>
<Day date="2024-11-20">
<Rate unit="1" curr="AUD">252,78</Rate>
<Rate unit="1" curr="BGN">209,49</Rate>
<Rate unit="1" curr="BRL">67,24</Rate>
...
</Day>
</MNBCurrentExchangeRates>
```
Therefore, we can:
1. Open a Zeep client to communicate with the service
2. Parse the XML and fetch the data (currency, ratio, rates and date).
3. Update the result dict accordingly
task-4320506
Forward-Port-Of: odoo/enterprise#74016In commit, we remove empty runs that no longer have a reason to exist. We also prefer to use tour helpers ( hover ) instead of using makeVisible functions in order to simulate user interactions as best as possible. We take advantage of this commit to remove the nextTick helper in webStudio (we no longer need it since 3bfd2e9cf8 ) https://github.com/odoo/odoo/pull/187999 Forward-Port-Of: odoo/enterprise#74252
Original PR description
In commit, we remove empty runs that no longer have a reason to exist. We also prefer to use tour helpers ( hover ) instead of using makeVisible functions in order to simulate user interactions as best as possible. We take advantage of this commit to remove the nextTick helper in webStudio (we no longer need it since 3bfd2e9cf8 ) https://github.com/odoo/odoo/pull/187999 Forward-Port-Of: odoo/enterprise#74252
### Steps to reproduce: - Create 2 storable products: Final product (FP) and Component (COMP) - Put 10 units of COMP in stock - Create a Bill of Material for FP: - raw move: 10 x COMP - 1 operation: "Register COMP" - Add an instruction on your operation: - type: "Register consumed component" - Product To Register: COMP - Create and confirm an MO for 1 Unit of FP - Go to the shopfloor > "Register COMP" - Change the quantity to 3 > Validate #### > Go back to the MO the
Original PR description
### Steps to reproduce: - Create 2 storable products: Final product (FP) and Component (COMP) - Put 10 units of COMP in stock - Create a Bill of Material for FP: - raw move: 10 x COMP - 1 operation:…
### Steps to reproduce:
- Create 2 storable products: Final product (FP) and Component (COMP)
- Put 10 units of COMP in stock
- Create a Bill of Material for FP:
- raw move: 10 x COMP
- 1 operation: "Register COMP"
- Add an instruction on your operation:
- type: "Register consumed component"
- Product To Register: COMP
- Create and confirm an MO for 1 Unit of FP
- Go to the shopfloor > "Register COMP"
- Change the quantity to 3 > Validate
#### > Go back to the MO the quantity of the raw move is still 10
### Cause of the issue:
Clicking on "Validate" as well as on "Continue consumption" will trigger a call of the `_next` method with `continue_production=False` and `True` respectively:
https://github.com/odoo/enterprise/blob/e86b97f57e2388b3b65326cecedd3c14ca02ddb1/mrp_workorder/models/quality.py#L346-L352 However, if you underconsume, a new move ine will be created for the remaining quantity in both cases and it should only when you `Continue consumption`.
### Note:
If you underconsume, and change the quantity of the raw move without changing its original demand. As such, its state will itself change. Hence, if you come back to the MO, the reservation sate of the MO will be recomputed and be updated from assigned to confirmed. However, as the raw move is picked it should not alter the reservation state of the MO anymore:
https://github.com/odoo/odoo/blob/9918e8f3d627f3c52238d6b04bcd15c05d34e40c/addons/mrp/models/mrp_production.py#L613 This is the purpose of the community PR.
opw-4216910
Forward-Port-Of: odoo/enterprise#74149
Forward-Port-Of: odoo/enterprise#73396*= group_s + partena + ucm before this commit the specific fields were visible even in case that the user shouldn't see them because for exemple he is in a US company this commit fix this issue by adding invisible depends on company country note: the work entry type is still visible if no country is set task-4286122 Forward-Port-Of: odoo/enterprise#72794
Original PR description
*= group_s + partena + ucm before this commit the specific fields were visible even in case that the user shouldn't see them because for exemple he is in a US company this commit fix this issue by adding invisible depends on company country note: the work entry type is still visible if no country is set task-4286122 Forward-Port-Of: odoo/enterprise#72794
Steps ----- - Subscriptions > Configuration > Alerts. - Create an alert triggered when the stage goes from 'Initial' (placeholder) to 'In Progress', set 'Create next activity', chose Email as activity. - Create a subscription, confirm it. ** Multiple activities created in the chatter (1 would be expected) ** Cause ----- The `pre_domain_filter` of the `base.automation` is not set, leading to an activity being created every time a write happens on the sale order while it is in the `s
Original PR description
Steps ----- - Subscriptions > Configuration > Alerts. - Create an alert triggered when the stage goes from 'Initial' (placeholder) to 'In Progress', set 'Create next activity', chose Email as activity. - Create a subscription, confirm it. ** Multiple activities created in the chatter (1 would be expected) ** Cause ----- The `pre_domain_filter` of the `base.automation` is not set, leading to an activity being created every time a write happens on the sale order while it is in the `stage_to_id` stage. Change ----- Add a pre-domain/domain filter to only trigger actions when the stage changes. opw-4273625 Forward-Port-Of: odoo/enterprise#74292 Forward-Port-Of: odoo/enterprise#73601
Problem: Users are not allowed to set a zero interest rate on a loan. Steps to reproduce: 1. Go to accounting accounting > loans > new 2. Set any name and any amount in the borrowed field 3. Click on Calculate 4. Set interest rate to 0% and click Apply Explication: The library we were using "loanpy" does not handle the case where the interest rate is zero if the loan_type is `annuity`, and we ended up dividing zero by zero, throwing an error. The fix: If the interest is zero, we
Original PR description
Problem: Users are not allowed to set a zero interest rate on a loan. Steps to reproduce: 1. Go to accounting accounting > loans > new 2. Set any name and any amount in the borrowed field 3. Click on Calculate 4. Set interest rate to 0% and click Apply Explication: The library we were using "loanpy" does not handle the case where the interest rate is zero if the loan_type is `annuity`, and we ended up dividing zero by zero, throwing an error. The fix: If the interest is zero, we override the loan's type from `annuity` (the default) to `linear`, as the linear formula is better suited for the zero interest case. opw-4298272 Forward-Port-Of: odoo/enterprise#74018
A CP200 employee may be eligible for exoneration based on the number of dependent children they have. This change: * Takes the value of exoneration into account in the computation of termination fees withholding taxes. * Refactors the computation of withholding taxes for `double holiday pay`, `13th month` and `termination fees` into one function. task-3909012 Forward-Port-Of: odoo/enterprise#74019 Forward-Port-Of: odoo/enterprise#73557
Original PR description
A CP200 employee may be eligible for exoneration based on the number of dependent children they have. This change: * Takes the value of exoneration into account in the computation of termination fees withholding taxes. * Refactors the computation of withholding taxes for `double holiday pay`, `13th month` and `termination fees` into one function. task-3909012 Forward-Port-Of: odoo/enterprise#74019 Forward-Port-Of: odoo/enterprise#73557
Steps ----- 1. Appraisals > Click on one or go to Configuration > Appraisal templates 2. Click on the feedback. A text 'Type "/" for commands' appears with buttons in a broken layout. Cause ----- With the new html_editor, editor buttons are descendants of `o_appraisal_input` in the DOM. Changes ----- - restrict the selector that is used to prevent overflow so it doesn't impact editor - hide the power buttons to avoid overflow when ui size is between `sm` and `md` (they are hidden a
Original PR description
Steps ----- 1. Appraisals > Click on one or go to Configuration > Appraisal templates 2. Click on the feedback. A text 'Type "/" for commands' appears with buttons in a broken layout. Cause ----- With the new html_editor, editor buttons are descendants of `o_appraisal_input` in the DOM. Changes ----- - restrict the selector that is used to prevent overflow so it doesn't impact editor - hide the power buttons to avoid overflow when ui size is between `sm` and `md` (they are hidden automatically below `sm`) opw-4338929 Forward-Port-Of: odoo/enterprise#74566
Giving l10n_id_kode_ptkp a group value, as it is not supposed to be public. [broken error builds](https://runbot.odoo.com/web/#id=75156&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) Forward-Port-Of: odoo/enterprise#74560
Original PR description
Giving l10n_id_kode_ptkp a group value, as it is not supposed to be public. [broken error builds](https://runbot.odoo.com/web/#id=75156&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) Forward-Port-Of: odoo/enterprise#74560
Before this commit, when the end_date occured inside the next period, we could invoice the prorated part of the period. Invoice from 5th of November to 5 of December. End date on the 1st of December. The invoice would be from the 5th of November to the 1st of December. As this seems smart, it would disrupt some flows where salesperson would put an end_date as an incentive to force people pay their contract/upsells in a fear of service disruption. With the previous code, the in
Original PR description
Before this commit, when the end_date occured inside the next period, we
could invoice the prorated part of the period.
Invoice from 5th of November to 5 of December.
End date on the 1st of December.
The invoice would be from the 5th of November to the 1st of December.
As this seems smart, it would disrupt some flows where salesperson would
put an end_date as an incentive to force people pay their
contract/upsells in a fear of service disruption.
With the previous code, the invoice would be prorated and removing the
end_date would mess up with the next_invocie_date and invoicing periods.
taskid: 4358288
Forward-Port-Of: odoo/enterprise#74181The FormatAddressMixin implements a feature that will replace some parts of a view with some other when having no_address_format in the context. commit 28d8ee5ea27106bf21e5a25c3fce48d39ffed4fd partially solved the problem, but not for all the spots where we need to do a `get_view` without being parasited with the foreign tree parts. opw-4335439 Forward-Port-Of: odoo/enterprise#74583 Forward-Port-Of: odoo/enterprise#74257
Original PR description
The FormatAddressMixin implements a feature that will replace some parts of a view with some other when having no_address_format in the context. commit 28d8ee5ea27106bf21e5a25c3fce48d39ffed4fd partially solved the problem, but not for all the spots where we need to do a `get_view` without being parasited with the foreign tree parts. opw-4335439 Forward-Port-Of: odoo/enterprise#74583 Forward-Port-Of: odoo/enterprise#74257
…o studio Have a flow where active_ids is in the url and is used by the action itself (with a dynamic context key for example). Enter studio and reload. Before this commit, this flow crashed, because active_ids was not present. After this commit it doesn"t crash. opw-4296198 Forward-Port-Of: odoo/enterprise#74539 Forward-Port-Of: odoo/enterprise#74291
Original PR description
…o studio Have a flow where active_ids is in the url and is used by the action itself (with a dynamic context key for example). Enter studio and reload. Before this commit, this flow crashed, because active_ids was not present. After this commit it doesn"t crash. opw-4296198 Forward-Port-Of: odoo/enterprise#74539 Forward-Port-Of: odoo/enterprise#74291
**Issue:** Two terms appear in English on an invoice. **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Mexican database; - Create a customer invoice; - Send and print including the CFDI; - Open the PDF for the invoice; - The terms "Usage" and "Predial Account" appear untranslated. **Cause:** No translation have been found for these keys. **Fix:** Add Spanish translations for these terms. opw-4332513 Forward
Original PR description
**Issue:** Two terms appear in English on an invoice. **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Mexican database; - Create a customer invoice; - Send and print including the CFDI; - Open the PDF for the invoice; - The terms "Usage" and "Predial Account" appear untranslated. **Cause:** No translation have been found for these keys. **Fix:** Add Spanish translations for these terms. opw-4332513 Forward-Port-Of: odoo/enterprise#74506
The previously named 'Taxable Salary' for the salary rule 'GROSS' and the category 'GROSS' should be renamed in the US to 'Gross Pay'. Task: 4329661 Forward-Port-Of: odoo/enterprise#74518 Forward-Port-Of: odoo/enterprise#73760
Original PR description
The previously named 'Taxable Salary' for the salary rule 'GROSS' and the category 'GROSS' should be renamed in the US to 'Gross Pay'. Task: 4329661 Forward-Port-Of: odoo/enterprise#74518 Forward-Port-Of: odoo/enterprise#73760
When the user tries to delete the storage record, A traceback will appear. Steps to reproduce the error: - Install ``data_cleaning`` module - Go to Data Cleaning > Storage > Select any record > Actions > Delete > Delete Traceback: ``` UndefinedTable: relation "ir_attachment_report" does not exist LINE 1: DELETE FROM "ir_attachment_report" WHERE id IN (498, 963, 12... ^ File "odoo/http.py", line 2363, in __call__ response = request._serve_db() File "o
Original PR description
When the user tries to delete the storage record, A traceback will appear. Steps to reproduce the error: - Install ``data_cleaning`` module - Go to Data Cleaning > Storage > Select any record >…
When the user tries to delete the storage record,
A traceback will appear.
Steps to reproduce the error:
- Install ``data_cleaning`` module
- Go to Data Cleaning > Storage > Select any record > Actions > Delete > Delete
Traceback:
```
UndefinedTable: relation "ir_attachment_report" does not exist
LINE 1: DELETE FROM "ir_attachment_report" WHERE id IN (498, 963, 12...
^
File "odoo/http.py", line 2363, in __call__
response = request._serve_db()
File "odoo/http.py", line 1891, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1954, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 137, in retrying
result = func()
File "odoo/http.py", line 1921, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2168, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 329, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 727, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 517, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "odoo/models.py", line 4498, in unlink
cr.execute(SQL(
File "odoo/sql_db.py", line 354, in execute
res = self._obj.execute(query, params)
```
``ir.attachment.report`` model is ``_auto = False``.
So, a database table will not be created for the model.
When the user tries to delete the record of that model,
It will lead to the above traceback.
sentry-6073448766
Forward-Port-Of: odoo/enterprise#74074In this commit: === - Added translation support for location names in `pos.config` to ensure updates are reflected in UrbanPiper locations. - Since the default language in UrbanPiper is English, users must set their language to English to sync the menu. A redirect warning has been added for users configuring this setting. task-4328185 Forward-Port-Of: odoo/enterprise#73631
Original PR description
In this commit: === - Added translation support for location names in `pos.config` to ensure updates are reflected in UrbanPiper locations. - Since the default language in UrbanPiper is English, users must set their language to English to sync the menu. A redirect warning has been added for users configuring this setting. task-4328185 Forward-Port-Of: odoo/enterprise#73631
In this commit: === - Added a link to redirect users to the Odoo survey form for gathering required details for urbanPiper. task-4350722 Forward-Port-Of: odoo/enterprise#74174
Original PR description
In this commit: === - Added a link to redirect users to the Odoo survey form for gathering required details for urbanPiper. task-4350722 Forward-Port-Of: odoo/enterprise#74174
Handle an error that occurs when a user attempts to open the 'VAT Return (BE)' report from the 'Miscellaneous Operations' section in Accounting. Steps to produce an error: - Create a database without demo data and install Accounting. - Go to Accounting > Configuration > Journals. - Open 'Miscellaneous Operations' and mark activity as done in chatter. - Click on activities on Chatter and create an activity with activity type Tax Report. - Go to the accounting dashboard > In the dashboar
Original PR description
Handle an error that occurs when a user attempts to open the 'VAT Return (BE)' report from the 'Miscellaneous Operations' section in Accounting. Steps to produce an error: - Create a database without…
Handle an error that occurs when a user attempts to open the 'VAT Return (BE)' report from the 'Miscellaneous Operations' section in Accounting. Steps to produce an error: - Create a database without demo data and install Accounting. - Go to Accounting > Configuration > Journals. - Open 'Miscellaneous Operations' and mark activity as done in chatter. - Click on activities on Chatter and create an activity with activity type Tax Report. - Go to the accounting dashboard > In the dashboard, click on "Tax Report" in Miscellaneous Operations. When the system tries to get the data from json field ```account_tax_closing_params``` at [1], but it is False. Line 1: https://github.com/odoo/enterprise/blob/861015dad0f4de7371e221cfac92b74e336f4fde/account_reports/models/mail_activity.py#L21-L23 ```TypeError: 'bool' object is not subscriptable``` To resolve this, add a condition that if ```account_tax_closing_params``` is False, Then pass an empty dictionary as 'options' in the action's params and also update a code for 'Closing Entry'. Sentry-6055553906, 6076852489 Forward-Port-Of: odoo/enterprise#73730
Before this commit: =========== - There was a traceback error when sending receipts through SMS and WhatsApp. - Basic receipts were not being added as email attachments when sending receipts through email. After this commit: =========== - The traceback error while sending receipts has been resolved, and the receipt sending flow is now seamless. - Basic receipts will now be attached as email attachments when sending receipts through email. task-4212901 Related: - Community: https:
Original PR description
Before this commit: =========== - There was a traceback error when sending receipts through SMS and WhatsApp. - Basic receipts were not being added as email attachments when sending receipts through email. After this commit: =========== - The traceback error while sending receipts has been resolved, and the receipt sending flow is now seamless. - Basic receipts will now be attached as email attachments when sending receipts through email. task-4212901 Related: - Community: https://github.com/odoo/odoo/pull/181828 Forward-Port-Of: odoo/enterprise#70891
The Indian government has revised the threshold limit for reporting inter-state invoices of unregistered customers in GSTR-1 from ₹250,000 to ₹100,000. With this PR, the threshold limits for unregistered customers (B2CL, B2CS, and CDNUR) are updated based on the invoice date: -For invoices dated before November 2024, the limit remains ₹250,000. -For invoices dated November 2024 or later, the limit is reduced to ₹100,000. task-4170878 Forward-Port-Of: odoo/enterprise#74586 Forward-Port-O
Original PR description
The Indian government has revised the threshold limit for reporting inter-state invoices of unregistered customers in GSTR-1 from ₹250,000 to ₹100,000. With this PR, the threshold limits for unregistered customers (B2CL, B2CS, and CDNUR) are updated based on the invoice date: -For invoices dated before November 2024, the limit remains ₹250,000. -For invoices dated November 2024 or later, the limit is reduced to ₹100,000. task-4170878 Forward-Port-Of: odoo/enterprise#74586 Forward-Port-Of: odoo/enterprise#72446
3 changes
Resolved issues and error corrections
This update fixes a problem where some Odoo clients using Quadrum or SW Sapien were receiving rejected CFDI invoices due to excessive schemaLocation headers. The change now only includes the necessary headers, ensuring invoices comply with Mexican tax regulations and avoid rejection.
Original PR description
Problem: ======== when using pacs : Quadrum, SW Sapien some clients get their CFDI rejected because the schemaLocation is is containing more headers than needed. Solution: ========= We will only keep the needed schemaLocation for customer invoice, so headers for Payment and External Trade will be removed. opw-4168509 Forward-Port-Of: odoo/enterprise#72450
This update ensures that tests for the account import process run consistently, regardless of whether the `xlrd` library is installed. Previously, tests were skipped when `xlrd` was available, leading to unreliable test results. This change utilizes `openpyxl` for XLSX files, guaranteeing test execution.
Original PR description
Since `xlrd >= 2.0` dropped XLSX support, we use `openpyxl` to open XLSX files if the `xlrd >= 2.0` is installed.[^1] However, the tests in `account_base_import` are skipped unless `xlrd.xlsx` can be imported. As a result, they are not run on runbot, where `xlrd >= 2.0` is installed. We therefore need to avoid skipping them if openpyxl is installed. runbot-108001 [^1]: https://github.com/odoo/odoo/pull/169245 Forward-Port-Of: odoo/enterprise#74608
This update ensures that the system correctly validates the origin and destination pairs before adding a reference number to delivery requests. This prevents errors and ensures accurate order processing, particularly when dealing with multiple locations.
Original PR description
validate origin/destination pairs before adding ReferenceNumber to the request