Thursday, December 26, 2024
31 changes · saas-18.1
Enhancements to existing features
The automated checks for preparation display workflows now use whole-number quantities instead of decimal quantities. This keeps test scenarios aligned with expected point-of-sale preparation behavior and reduces the risk of misleading test results.
Original PR description
After this commit : - Quantity in every test case has been updated from float to integer values. task - 4403770
Resolved issues and error corrections
This fix improves how Odoo forms display on small screens by preventing fields from stretching across columns in mobile layouts. It also adds spacing after certain custom input areas, making contact forms easier to read and use on phones or narrow screens.
Original PR description
This commit avoids setting the `grid-column: span 2;` CSS rules (inline) in form view when we are on small screen. Before the removal of d-contents it was not an issue as it was not a grid but a flex on small screen. Steps to reproduce: * Open Odoo on small Screen * Go to Contact * Select a Company * Go to the "Sales & Purchase" pane * The "Purchase" group has 2 grid columns and the render is ugly => BUG --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Steps to reproduce: - Insert a non-odoo pivot table - Try to update it => Traceback This was introduced by fe95f7fa64d6c2694980b4d9f6d03dc744ddaf19 opw-4429514 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#191774
Original PR description
Steps to reproduce: - Insert a non-odoo pivot table - Try to update it => Traceback This was introduced by fe95f7fa64d6c2694980b4d9f6d03dc744ddaf19 opw-4429514 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#191774
*: pos_restaurant, pos_loyalty Previously, synchronization management was faulty when two devices created a command at the same time. One would override the other. To overcome this problem, when sending the command to the server, we check whether the table used by the command already contains a command. If so, they are merged. When different devices use the same PoS, when an order is created on one of them, it is directly synchronized with the others. This makes it possible to calc
Original PR description
*: pos_restaurant, pos_loyalty Previously, synchronization management was faulty when two devices created a command at the same time. One would override the other. To overcome this problem, when sending the command to the server, we check whether the table used by the command already contains a command. If so, they are merged. When different devices use the same PoS, when an order is created on one of them, it is directly synchronized with the others. This makes it possible to calculate the various table states with greater precision. As in Master, orders are now identified by UUID rather than ID. The `replaceDataByKey` function is no longer used; what it used to do is now in loadData. All these fixes are very important in view of the problems encountered by some customers. Forward-Port-Of: odoo/odoo#190559 Forward-Port-Of: odoo/odoo#190088
In BR localization, when a logged user tries to edit the delivery address during checkout it may occur that the city field is missing the selection list, causing the form to always return a validation error Steps to reproduce (with a BR company setup) - In Website > Configuration > Settings, set BR company as owner of website - Log in as new user - Add an item to the cart - Go to checkout and add all the address info - In the addresses selection page, uncheck 'Same as delivery address'
Original PR description
In BR localization, when a logged user tries to edit the delivery address during checkout it may occur that the city field is missing the selection list, causing the form to always return a validation error Steps to reproduce (with a BR company setup) - In Website > Configuration > Settings, set BR company as owner of website - Log in as new user - Add an item to the cart - Go to checkout and add all the address info - In the addresses selection page, uncheck 'Same as delivery address' and add a new delivery address Issue: City selection list will be empty This occurs because, when user is editing the delivery address without 'Save as delivery address' the system won't provide the city list. Moreover it will attempt to validate VAT info (fields `vat` and `l10n_latam_identification_type_id`) for delivery addresses opw-4411470 Forward-Port-Of: odoo/odoo#191558
Before this commit, in a multi-company setup, logging into the PoS for the second company would result in the login number being NaN, such as 00337-NaN-0004. opw-4425868 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191554 Forward-Port-Of: odoo/odoo#191507
Original PR description
Before this commit, in a multi-company setup, logging into the PoS for the second company would result in the login number being NaN, such as 00337-NaN-0004. opw-4425868 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191554 Forward-Port-Of: odoo/odoo#191507
Before this commit, printing a receipt would result in an empty page at the end. This commit ensures that the receipt is printed correctly without any additional empty pages. opw-4389871 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190102
Original PR description
Before this commit, printing a receipt would result in an empty page at the end. This commit ensures that the receipt is printed correctly without any additional empty pages. opw-4389871 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190102
For an expense report paid by an employee, the bank account set on the employee form should be used to create the Journal Entry and as a default bank account in Register Payment Wizard. task-4379148 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191546 Forward-Port-Of: odoo/odoo#189967
Original PR description
For an expense report paid by an employee, the bank account set on the employee form should be used to create the Journal Entry and as a default bank account in Register Payment Wizard. task-4379148 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191546 Forward-Port-Of: odoo/odoo#189967
In this commit: =============== Added documentation link in pos.config for Razorpay terminal Task-4431707 Forward-Port-Of: odoo/odoo#191763
Original PR description
In this commit: =============== Added documentation link in pos.config for Razorpay terminal Task-4431707 Forward-Port-Of: odoo/odoo#191763
Since the new front-end badge design[^1], we introduced a new way of handling their generation, aiming to provide a new sleek and clean design. To do so, we tweak the colors that are available with badges, aka `.o_color_*` and status one. While this works fine, we also had to use some `!important` statements to enforce this design instead of the default BS one[^2]. Unfortunately, these `!important` introduced a side-effect, it prevents the badges to accept any other utility that we wouldn't l
Original PR description
Since the new front-end badge design[^1], we introduced a new way of handling their generation, aiming to provide a new sleek and clean design. To do so, we tweak the colors that are available with…
Since the new front-end badge design[^1], we introduced a new way of handling their generation, aiming to provide a new sleek and clean design. To do so, we tweak the colors that are available with badges, aka `.o_color_*` and status one. While this works fine, we also had to use some `!important` statements to enforce this design instead of the default BS one[^2]. Unfortunately, these `!important` introduced a side-effect, it prevents the badges to accept any other utility that we wouldn't loop through in this definition. This is what happened with the grayscale colors, meaning these badges were visually broken. To fix this issue, we simply need to add the CSS variables in use for the badge design within the grays utilities generation mixin. Responsible Commit: b4a5bf03cd81ece2a7fd21a3c5a058ee2d3336fe task-4361645 [^1]: https://github.com/odoo/odoo/pull/162935 [^2]: https://github.com/odoo/odoo/pull/162935/files#diff-f338780f594d6b1f46eda5d3fb9fed86f3c3c8f65522fb93e639534e9d92cdb2R611 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188670
Steps: - Have 2 companies with different currencies - Select both in company selector - Go to any report - Traceback: `psycopg2.errors.UndefinedFunction: operator does not exist: text >= date` Cause: https://github.com/odoo/odoo/blob/cacf3fd9fda3624193e6668e7d3e311707db5dad/addons/account/models/res_currency.py#L211 this condition is never met because the NULL value is casted as a text, therefore we ends up trying comparing 'NULL' to '<date>'. Fix: Casting both `date_from` an
Original PR description
Steps: - Have 2 companies with different currencies - Select both in company selector - Go to any report - Traceback: `psycopg2.errors.UndefinedFunction: operator does not exist: text >= date` Cause: https://github.com/odoo/odoo/blob/cacf3fd9fda3624193e6668e7d3e311707db5dad/addons/account/models/res_currency.py#L211 this condition is never met because the NULL value is casted as a text, therefore we ends up trying comparing 'NULL' to '<date>'. Fix: Casting both `date_from` and `date_to` into date format opw-4367588 Forward-Port-Of: odoo/odoo#191302
This PR aims to improve the color of the file input field that did not change when the theme color or input color was updated. With this PR, the file input field color will now adjust according to the background color of the input field and the theme color. task-4174112 Forward-Port-Of: odoo/odoo#184814
Original PR description
This PR aims to improve the color of the file input field that did not change when the theme color or input color was updated. With this PR, the file input field color will now adjust according to the background color of the input field and the theme color. task-4174112 Forward-Port-Of: odoo/odoo#184814
Users may give gift cards to their customers. Acting like a payment method, gift cards will lower the total amount of a sale order up to 0. Currently, in case of fixed tax applied in the order, the tax amount cannot be covered with the card balance Steps to reproduce - Generate a Gift Card of 100$ - Create a Sale Order with a product having: - price: 90$ - quantity: 1 - A fixed tax of 10$ - Add the gift card to the order Issue: Fixed tax amount will be left uncovered. This
Original PR description
Users may give gift cards to their customers. Acting like a payment method, gift cards will lower the total amount of a sale order up to 0. Currently, in case of fixed tax applied in the order, the tax amount cannot be covered with the card balance Steps to reproduce - Generate a Gift Card of 100$ - Create a Sale Order with a product having: - price: 90$ - quantity: 1 - A fixed tax of 10$ - Add the gift card to the order Issue: Fixed tax amount will be left uncovered. This is an issue because when using the gift card (or anyhow having the total 0), it means the fixed tax cost is supported by the merchant so it should be covered by the gift card opw-4422678 Forward-Port-Of: odoo/odoo#191429 Forward-Port-Of: odoo/odoo#191321
Current behavior before PR: - currently, we directly set the excluded property to 'true', which do not check for 'undefined' values, which are possible in certain cases. This fix ensure to set the property only if it is present. Desired behavior after PR is merged: - excluded property will set only for defined objects. ## steps to reproduce: - create two product, `main` & `optional` - for `main`, add two attribute values : eg height: 20, 30 - for `optional`, add attribute values : e
Original PR description
Current behavior before PR: - currently, we directly set the excluded property to 'true', which do not check for 'undefined' values, which are possible in certain cases. This fix ensure to set the…
Current behavior before PR:
- currently, we directly set the excluded property to 'true', which do not check for 'undefined' values, which are possible in certain cases. This fix ensure to set the property only if it is present.
Desired behavior after PR is merged:
- excluded property will set only for defined objects.
## steps to reproduce:
- create two product, `main` & `optional`
- for `main`, add two attribute values : eg height: 20, 30
- for `optional`, add attribute values : eg width : 100, 200, 300
- set `optional` as optional product for main product
- configure height values for `main` product-> for value 20: exclude `optional` product of attribute 200,300
- create a sale order with `optional` product and attribute 200. ( confirm the SO)
- now remove the attribute value 200 from `optional` product.
- try to create new quotation for main product.(traceback will appear)
## Traceback
```py
TypeError: Cannot set properties of undefined (setting 'excluded')
at ProductConfiguratorDialog._checkExclusions (http://localhost:9000/web/assets/00d1566/web.assets_web_dark.min.js:16288:175)
at ProductConfiguratorDialog._checkExclusions (http://localhost:9000/web/assets/00d1566/web.assets_web_dark.min.js:16291:181)
at ProductConfiguratorDialog._updateProductTemplateSelectedPTAV (http://localhost:9000/web/assets/00d1566/web.assets_web_dark.min.js:16283:100)
at ProductTemplateAttributeLine.updateSelectedPTAV (http://localhost:9000/web/assets/00d1566/web.assets_web_dark.min.js:16310:1317)
at Object.mainEventHandler
```
## Description
the moment we removed 200 attribute from optinal product, it went for check to be [unlink or become archived](https://github.com/odoo/odoo/blob/17.0/addons/product/models/product_template_attribute_value.py#L140-L147).
as it is linked to a SO, it cannot be deleted and simply left to archive.
due to this flow, the related record from product.template.attribute.exclusion still remains,
and when we fetch the list of ids of parent_exclusion, it [return](https://github.com/odoo/odoo/blob/17.0/addons/product/models/product_template.py#L974-L976) the archived value too, which is not present in ptavlist
We cannot simple delete the value from the relation table, as when the ptav 300 is again added, it is reused ( ptav_active sets to true) , and old relation starts to work together
## solution:
ignore the archived ptavs.
opw-4365068
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#190608This commit aims to make the graph in `s_numbers_charts` resize simultaneously with it's col parent. It looks like the problem came from the fact that the `s_chart` div was composed of the chart alone. Adding some other type of content makes the chart resize properly. task-4207620 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182053
Original PR description
This commit aims to make the graph in `s_numbers_charts` resize simultaneously with it's col parent. It looks like the problem came from the fact that the `s_chart` div was composed of the chart alone. Adding some other type of content makes the chart resize properly. task-4207620 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182053
Before this PR, the `forward_operator` chat bot step was not taking the user lang into account. It uses the `livechat_visitor_id` field which is not available in im_livechat. It should instead use the lang from the context. At the same time, this PR fixes an issue when restarting the chat bot: the lang of the first message following a restart is incorrect. It occurs because the lang is not properly propagated. task-4411088 opw-4341694 Forward-Port-Of: odoo/odoo#191343 Forward-Port-Of: od
Original PR description
Before this PR, the `forward_operator` chat bot step was not taking the user lang into account. It uses the `livechat_visitor_id` field which is not available in im_livechat. It should instead use the lang from the context. At the same time, this PR fixes an issue when restarting the chat bot: the lang of the first message following a restart is incorrect. It occurs because the lang is not properly propagated. task-4411088 opw-4341694 Forward-Port-Of: odoo/odoo#191343 Forward-Port-Of: odoo/odoo#190832
This error occurs when a product is added to one table, and the payment screen is accessed where an online payment method is selected but the payment is not completed. Subsequently, switching to another table and attempting to make an online payment results in the issue. Steps to reproduce: --- - Install ``pos_online_payment`` and ``pos_restaurant`` module - Create a new online payment in ``Payment Method(eg: Test)`` - In Configuration/Settings, add it for a restaurant in ``Payment Method
Original PR description
This error occurs when a product is added to one table, and the payment screen is accessed where an online payment method is selected but the payment is not completed. Subsequently, switching to…
This error occurs when a product is added to one table, and the payment screen is accessed where an online payment method is selected but the payment is not completed. Subsequently, switching to another table and attempting to make an online payment results in the issue.
Steps to reproduce:
---
- Install ``pos_online_payment`` and ``pos_restaurant`` module
- Create a new online payment in ``Payment Method(eg: Test)``
- In Configuration/Settings, add it for a restaurant in ``Payment Method``
- Now open a session in a restaurant > Select one table > Add products > Order > Payment > Click on Test
- Click on ``Tables`` > Select another table > Add product > Payment
- Click on Test and Validate
Traceback:
---
``Expected singleton: pos.order('p', 'o', 's', '.', 'o', 'r', 'd', 'e', 'r', '_', '2')``
Previous Behaviour:
---
When an online payment is selected for the first table but exited without completing the transaction, an RPC error occurs, causing the system to switch to offline mode. Consequently, the order encounters an error when attempting to place an order and process an online payment at the second table. At that time, it creates a new order as ID ``pos.order_2`` and updates the previous order. Due to what we get ID like ``pos.order_2``, leading to the issue.
After Commit:
---
When creating a new order for another table at [1], the ``online_account_payment_id`` is set to false. If this value is false, we will assign an empty set to ``online_account_payments_by_pm[pm_id]``.
sentry-5703437687
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#187876Steps to reproduce: - Enter website edit mode. - In the right panel, click on the "Intro" category. - Enter "quotes" in the "Search" input of the modal. - Click on one of the two "quotes carousel" blocks. - After the "quotes carousel" block is inserted on the page, click on its "Blockquote". - Click the red "delete" button that appears above the "Blockquote". - Bug: The carousel item is removed, and only the arrows to move the slide are shown on the screen. If you click on one of the ar
Original PR description
Steps to reproduce: - Enter website edit mode. - In the right panel, click on the "Intro" category. - Enter "quotes" in the "Search" input of the modal. - Click on one of the two "quotes carousel"…
Steps to reproduce: - Enter website edit mode. - In the right panel, click on the "Intro" category. - Enter "quotes" in the "Search" input of the modal. - Click on one of the two "quotes carousel" blocks. - After the "quotes carousel" block is inserted on the page, click on its "Blockquote". - Click the red "delete" button that appears above the "Blockquote". - Bug: The carousel item is removed, and only the arrows to move the slide are shown on the screen. If you click on one of the arrows, a traceback will occur. The exact same bug was previously fixed in commit [1], but since the modification of the "carousel quotes" snippet in commit [2], the fix no longer works. There is a system that removes the parent of a snippet that gets deleted if this parent is empty after the deletion. This allows, for example, to remove a column if its content is emptied to avoid leaving an empty column on the page. An exception to this rule was introduced by commit [1] for carousel items. Indeed, we don't want to remove a carousel item when it is empty. This exception checks if the grandparent of the deleted element is a carousel item. It worked initially because when the content of a slide was deleted, the container still remained within the carousel item. But this is no longer the case for the "quotes" carousel since commit [2], where the intermediate "container" element is no longer present. This commit also adds steps to the "carousel_content_removal" tour to prevent the issue from reappearing. [1]: https://github.com/odoo/odoo/commit/3c194faa930b0d3a537ca8b893b2c0442b5464e7 [2]: https://github.com/odoo/odoo/commit/4357ce81ed89bd389eafe3756733758736bad6cb opw-4417366 opw-4395645 Forward-Port-Of: odoo/odoo#191185
Before this PR, chatbot rules with the same target URL could be ignored, leading to missing chat bot in some cases. Steps to reproduce: - Setup chatbot A on url "/". - Setup chatbot B on url "/". Only enable it if there aren't any available operators. - Ensure no operator is connected. - Go to the "/" URL as a visitor. - No chat bot is present. This occurs because the first rule is returned then discarded since there aren't any operators. We should instead ensure that the second one i
Original PR description
Before this PR, chatbot rules with the same target URL could be ignored, leading to missing chat bot in some cases. Steps to reproduce: - Setup chatbot A on url "/". - Setup chatbot B on url "/". Only enable it if there aren't any available operators. - Ensure no operator is connected. - Go to the "/" URL as a visitor. - No chat bot is present. This occurs because the first rule is returned then discarded since there aren't any operators. We should instead ensure that the second one is used a fallback. This PR corrects the `match_rule` method to do so. opw-4352046 Forward-Port-Of: odoo/odoo#191027 Forward-Port-Of: odoo/odoo#190235
Issue: When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur. Steps to reproduce: - Install both Sales & Timesheets modules - Create a second company - On the product form, link the "Service on Timesheet" product to the second company - Archive a product from the first company Cause: The "Service on Timesheet" product is necessary for the Timesheets app to work. Having linked it to one company restricts its ac
Original PR description
Issue: When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur. Steps to reproduce: - Install both Sales & Timesheets modules - Create a second company - On the product form, link the "Service on Timesheet" product to the second company - Archive a product from the first company Cause: The "Service on Timesheet" product is necessary for the Timesheets app to work. Having linked it to one company restricts its access to others. Solution: While this is expected behaviour, I suggest blocking the user from linking the product to a company to prevent similar issues. I propose doing so since archiving and deletion are already blocked. This change still allows unlinking from the company through the UI. Ticket: opw-4270086 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191242 Forward-Port-Of: odoo/odoo#188251
added a session key to indicate if the current session is connected to an Italian company. Related: https://github.com/odoo/enterprise/pull/75147 Forward-Port-Of: odoo/odoo#189610
Original PR description
added a session key to indicate if the current session is connected to an Italian company. Related: https://github.com/odoo/enterprise/pull/75147 Forward-Port-Of: odoo/odoo#189610
**Problem**: The function `_getColumnSize` returns the size of the columns. When `gridIndex = columnSize;` is assigned and `columnSize` equals 12, it causes an overflow in the `grid` array. This leads to invalid elements being passed to `_applyColspan`. **Solution**: Ensure `_applyColspan` is only called when `gridIndex` is within valid bounds. **Steps to reproduce**: 1. Open an email marketing template. 2. Extend the "Centered Logo" snippet to the maximum size (`col-12`). 3. Observe
Original PR description
**Problem**: The function `_getColumnSize` returns the size of the columns. When `gridIndex = columnSize;` is assigned and `columnSize` equals 12, it causes an overflow in the `grid` array. This leads to invalid elements being passed to `_applyColspan`. **Solution**: Ensure `_applyColspan` is only called when `gridIndex` is within valid bounds. **Steps to reproduce**: 1. Open an email marketing template. 2. Extend the "Centered Logo" snippet to the maximum size (`col-12`). 3. Observe a traceback error. opw-4381159 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190677
Currently a `ParseError` is arising when user installs the 'website_livechat' module after deleting the 'YourWebsite.com' channel from 'im_livechat' module. To reproduce this error: - Install 'im_livechat' module. - Open the application and delete 'YourWebsite.com' channel by going to 'Configure Channel' - Now try to install the 'website_livechat' module. - The error appears in the log. Error: `ParseError while parsing /home/odoo/src/odoo/18.0/addons/website_livechat/data/ website_li
Original PR description
Currently a `ParseError` is arising when user installs the 'website_livechat' module after deleting the 'YourWebsite.com' channel from 'im_livechat' module.
To reproduce this error:
- Install 'im_livechat' module.
- Open the application and delete 'YourWebsite.com' channel by going to 'Configure Channel'
- Now try to install the 'website_livechat' module.
- The error appears in the log.
Error: `ParseError
while parsing /home/odoo/src/odoo/18.0/addons/website_livechat/data/ website_livechat_data.xml:4, somewhere inside
<record id="website.default_website" model="website">
<field name="channel_id" ref="im_livechat.im_livechat_channel_data"/>
</record>`
This commit solves the above issue by using `forcecreate='False'` to bypass
record creation if it violates checks.
sentry-6107471185
Forward-Port-Of: odoo/odoo#189566Before this commit, when the content of the expense is updated by OCR, the author might not be "OdooBot". This happened because while filling the document with results (in hr_expense._predict_product) there is a savepoint that removes the author. This commit sets the OCR note author after filling the document with results, which makes sure that the correct author (i.e., OdooBot) is always set. Moreover, if the expense receipt has a dot in its name, the _predict_product was never visited.
Original PR description
Before this commit, when the content of the expense is updated by OCR, the author might not be "OdooBot". This happened because while filling the document with results (in hr_expense._predict_product) there is a savepoint that removes the author. This commit sets the OCR note author after filling the document with results, which makes sure that the correct author (i.e., OdooBot) is always set. Moreover, if the expense receipt has a dot in its name, the _predict_product was never visited. So, the attachment name extraction is fixed to make sure that only file extension was removed. This commit also adds unit tests to expense and invoice OCR extract to make sure that their notes are authored by OdooBot. The test was not introduced in hr.applicant, however, since OCR does not change any tracked fields (i.e., OCR never logs a note on the chatter). task-4197413 Forward-Port-Of: odoo/enterprise#76194 Forward-Port-Of: odoo/enterprise#75756
We delete a constraint that requires to have an accepted original document in order to be able to generate CN or DN. This is not actually needed: 1. if there is a problem with the original document then DGI response will let us know and will reject our DN/CN 2. In the case I create an invoice, and immediately found an error we can now generate the credit note: not need to wait the invoices has been process. They will process together by the cron. 3. For the case that we need to generate DN
Original PR description
We delete a constraint that requires to have an accepted original document in order to be able to generate CN or DN. This is not actually needed: 1. if there is a problem with the original document then DGI response will let us know and will reject our DN/CN 2. In the case I create an invoice, and immediately found an error we can now generate the credit note: not need to wait the invoices has been process. They will process together by the cron. 3. For the case that we need to generate DN and CN where the original related document was generate with other sofware (for example a DN or CN from an old invoice genrated in previos sofware provider) without this constraint is possible. LATAM 1301 / ADHOC Ticket 46212 Forward-Port-Of: odoo/enterprise#75789
To be more clear, we add the original amount from the statement we are to reconciliating on the open balance line. task-4194671 Forward-Port-Of: odoo/enterprise#76030 Forward-Port-Of: odoo/enterprise#70785
Original PR description
To be more clear, we add the original amount from the statement we are to reconciliating on the open balance line. task-4194671 Forward-Port-Of: odoo/enterprise#76030 Forward-Port-Of: odoo/enterprise#70785
Implement delivery guide functionality for Ecuador. - Added a new "Delivery Guide" group within the "Other Info" tab to record details such as transporter, plate number, transfer reason, and delivery dates. - Enabled the generation and electronic submission of the delivery guide document. - Added functionality to cancel the electronic delivery guide if needed. - Provided the option to download the generated XML in case of any submission issues. - Included the ability to send the delivery
Original PR description
Implement delivery guide functionality for Ecuador. - Added a new "Delivery Guide" group within the "Other Info" tab to record details such as transporter, plate number, transfer reason, and delivery dates. - Enabled the generation and electronic submission of the delivery guide document. - Added functionality to cancel the electronic delivery guide if needed. - Provided the option to download the generated XML in case of any submission issues. - Included the ability to send the delivery guide by email to the partner for their records.  Forward-Port-Of: odoo/enterprise#68468
The 2 exports have the same name, which is impractical. Let's differentiate them task-4414223 Forward-Port-Of: odoo/enterprise#75957 Forward-Port-Of: odoo/enterprise#75907
Original PR description
The 2 exports have the same name, which is impractical. Let's differentiate them task-4414223 Forward-Port-Of: odoo/enterprise#75957 Forward-Port-Of: odoo/enterprise#75907
…ing taxes Steps to reproduce ================== - Create a company in Canada with the canadian fiscal localization - Configure the avatax sandbox credentials - Create a new fiscal position in the USA that uses the avatax API - Create a USD pricelist - Create a warehouse in Cleveland Ohio - Create a salesorder with an Ohio based customer and the USD pricelist - Select a storable product with an invoicing policy on delivered quantity - Set the avatax category of the product to "H
Original PR description
…ing taxes Steps to reproduce ================== - Create a company in Canada with the canadian fiscal localization - Configure the avatax sandbox credentials - Create a new fiscal position in the…
…ing taxes Steps to reproduce ================== - Create a company in Canada with the canadian fiscal localization - Configure the avatax sandbox credentials - Create a new fiscal position in the USA that uses the avatax API - Create a USD pricelist - Create a warehouse in Cleveland Ohio - Create a salesorder with an Ohio based customer and the USD pricelist - Select a storable product with an invoicing policy on delivered quantity - Set the avatax category of the product to "Hand tools" - Select the warehouse just created on the sales order - Click on the "Compute taxes" button => The tax is set to 1% - Confirm the sales order => The tax is still set to 1% - Validate the delivery and create + confirm a new invoice => The tax is now 2.25% Cause of the issue ================== When computing the addresses to send to Avatax, the stock move addresse was used, but at this point, they have not yet been created Solution ======== We now use the warehouse from the sales order. This is only a best-effort estimation of where the products will ship from. It's possible products ship from a different warehouse than warehouse_id. For example, you can change the default delivery route to pull from a source location in a different warehouse. However, this is probably not a common configuration. In the end, the only way to know for sure is to run the inventory-related code, which we want to avoid just for tax computation. Finally, it's also possible for users to change the warehouse manually after the order is confirmed. This can also potentially change taxes, and there's no way to anticipate this. The account.move code will continue to pull the warehouse from the stock.move, because we know it will be created before the invoice. Note that even on account.move the shipping address remains an estimation for products with an “invoice on ordered” invoicing policy. opw-4073701 Forward-Port-Of: odoo/enterprise#75655
Steps to reproduce ================== - Archive default "Projects" workspace - Create a new Project - Create a task and attach a file - Click on the smart button to view the document - Go back to the home menu and open the documents app => `Cannot read properties of undefined (reading 'id')` Solution ======== Prevent the archiving of the projects workspace opw-4308132 Forward-Port-Of: odoo/enterprise#75854 Forward-Port-Of: odoo/enterprise#75659
Original PR description
Steps to reproduce ================== - Archive default "Projects" workspace - Create a new Project - Create a task and attach a file - Click on the smart button to view the document - Go back to the home menu and open the documents app => `Cannot read properties of undefined (reading 'id')` Solution ======== Prevent the archiving of the projects workspace opw-4308132 Forward-Port-Of: odoo/enterprise#75854 Forward-Port-Of: odoo/enterprise#75659
added a session key to indicate if the current session is connected to an Italian company. Related: https://github.com/odoo/odoo/pull/189610 Forward-Port-Of: odoo/enterprise#75147
Original PR description
added a session key to indicate if the current session is connected to an Italian company. Related: https://github.com/odoo/odoo/pull/189610 Forward-Port-Of: odoo/enterprise#75147