Thursday, September 12, 2024
31 changes · saas-17.4
Enhancements to existing features
Budget line help text has been clarified so users can better understand key budget fields. Revenue budgets now also hide commitment percentage information that is not relevant, reducing confusion for finance teams.
Original PR description
Before this commit: - The budget line tooltips were unclear for some fields. After this commit: - The budget line tooltips have been updated for better clarity. Task-4120878
The Helpdesk forum walkthrough now starts with a sample forum post already in place. This makes the guided tour more reliable and helps prevent failures caused by missing demo content.
Original PR description
The Helpdesk forum tour relies on the forum containing at least one post. This PR manually creates a post in python before launching the tour. Task-4143944
Resolved issues and error corrections
This fixes an internal test reliability issue by resetting tracking counters after each test and preventing automatic retries for one sensitive test. It helps keep development and release validation more stable, with no direct impact on end users.
Original PR description
The test `test_signaling_01_multiple` may fail if the sequence changed during another test. A fix was made to reset the registry sequence but the cache sequence remains an issue. This should solve the issue by resetting the sequence at the end of each test. The tour test_ir_model_fields_translation was used with test_signaling_01_multiple to reproduce the issue. Auto retry is also disabled on this test to avoid the same issue in the future.
Miscellaneous changes
Issue when adding a branch for a company with a parent using "German chart of accounts SKR04" localization. Steps to reproduce: - Install the l10n_de and account modules. - Create a company with the localization “German chart of accounts SKR04.” - For this company, attempt to create a branch. Explanation of the issue: The _guess_chart_template function incorrectly returns the SKR03 chart template instead of SKR04 for the new branch. As a result, the _pre_reload_data function, which cre
Original PR description
Issue when adding a branch for a company with a parent using "German chart of accounts SKR04" localization. Steps to reproduce: - Install the l10n_de and account modules. - Create a company with the localization “German chart of accounts SKR04.” - For this company, attempt to create a branch. Explanation of the issue: The _guess_chart_template function incorrectly returns the SKR03 chart template instead of SKR04 for the new branch. As a result, the _pre_reload_data function, which creates the missing xmlids, is not triggered. Solution: To resolve this issue, I prioritize using the chart template from the parent company if available, instead of relying on the _guess_chart_template function. opw-4141944 Forward-Port-Of: odoo/odoo#179896
Product price fields now respect the decimal precision configured for products instead of being limited by the currency's usual two decimals. This ensures pricelist fixed prices can be entered accurately when a business uses more detailed product pricing.
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Set product price decimal digits to 5; 2. create a price list. Issue ----- The field for setting a fixed price only allows for a 2 digit accuracy. Cause ----- When using the `monetary` widget, it defaults to the currency's decimal precision, unless the `field_digits` option is set to `True`. This was the case for this field until commit 06d0053763cd, which refactored the pricelist displays, removing the option. Solution -------- In product views, set the `field_digits` option for every monetary field. opw-4151503
Rental stock calculations now correctly account for outgoing deliveries when shipments are handled in two steps. This helps avoid underestimating ongoing rentals, making replenishment and availability planning more reliable.
Original PR description
In two steps the outgoing shipment doesn't exist. So the computation on max ongoing rental is not correct. We fix it to correctly count the outgoing shipment
[FIX] website: avoid page template to crash at preview removed Steps to reproduce: - On the website, click on "New" then "Page" to create a new page. - On the blank page, click on "Use this template". - Insert a file name (e.g. `rte_translator.xml`) and click on 'Create'. -> If the last operation was fast enough a traceback of type `TypeError: Cannot read properties of null (reading 'fonts')` can occur. Note that to be able to reproduce the problem, a delay may have to be added in th
Original PR description
[FIX] website: avoid page template to crash at preview removed Steps to reproduce: - On the website, click on "New" then "Page" to create a new page. - On the blank page, click on "Use this…
[FIX] website: avoid page template to crash at preview removed Steps to reproduce: - On the website, click on "New" then "Page" to create a new page. - On the blank page, click on "Use this template". - Insert a file name (e.g. `rte_translator.xml`) and click on 'Create'. -> If the last operation was fast enough a traceback of type `TypeError: Cannot read properties of null (reading 'fonts')` can occur. Note that to be able to reproduce the problem, a delay may have to be added in the `onceAllImagesLoaded` method and the operations of file name insertion and page creation have to be quite quick (you can for example use the `rte_translator` test tour). Since [this commit], it is possible to create new pages from templates. The problem here is that the template preview is removed before the `onMounted()` operation of the `AddPageTemplatePreview` component finished. Due to it, the content document of the preview iframe is not set and trying to search for its `fonts` leads to an error. This commit fixes this issue by ensuring that the component has not been destroyed before continuing its `onMounted()` process. [this commit]: https://github.com/odoo/odoo/commit/e0796020ee0c3188e1e9d9fa077de73a2211c6f7 Forward-Port-Of: odoo/odoo#179894
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Warehouses - Change your warehouse to manufacturing in 3 steps - Create a storable product COMP with 10 units in stock - Create a manufacturing order for a product Final product using COMP as components #### > The forcast of the components indicates that they are not available ### Cause of the issue: The location query of the `_get_forecast_availability_outgoing
Original PR description
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Warehouses - Change your warehouse to manufacturing in 3 steps - Create a…
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Warehouses - Change your warehouse to manufacturing in 3 steps - Create a storable product COMP with 10 units in stock - Create a manufacturing order for a product Final product using COMP as components #### > The forcast of the components indicates that they are not available ### Cause of the issue: The location query of the `_get_forecast_availability_outgoing` was recently changed to: https://github.com/odoo/odoo/blob/49061347c181b1a451435bc363bb9508db8b6fab/addons/stock/models/stock_move.py#L2253 This change was made for optimisation purposes because the forecast lines now take care of the precise locations here: https://github.com/odoo/odoo/blob/49061347c181b1a451435bc363bb9508db8b6fab/addons/stock/models/stock_move.py#L2255 However, this optimisation is not correct as the forecast the result of this query is used in order to determine if a move is incoming or outgoing here: https://github.com/odoo/odoo/blob/49061347c181b1a451435bc363bb9508db8b6fab/addons/stock/report/stock_forecasted.py#L31-L44 and these domains only makes sense if the `wh_location_ids` are indeed all the locations of the warehouse and not these that are children of the "pre-prod" location. opw-3979953 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179897 Forward-Port-Of: odoo/odoo#179850
Before this commit: Previously, when creating automation rules, users could select models that did not have any fields. This would result in either an invalid domain warning or an error. Steps to reproduce: - Install base_automation. - Navigate to Settings > Technical > Automation > Automation Rules. - Give an appropriate name to the rule and select base as the model. After this commit: Users will no longer be able to create automation rules for models without fields. Task
Original PR description
Before this commit: Previously, when creating automation rules, users could select models that did not have any fields. This would result in either an invalid domain warning or an error. Steps to reproduce: - Install base_automation. - Navigate to Settings > Technical > Automation > Automation Rules. - Give an appropriate name to the rule and select base as the model. After this commit: Users will no longer be able to create automation rules for models without fields. Task-3874560 --- Forward-Port-Of: odoo/odoo#163117
**Steps to reproduce:** 1- Install POS and POS restaurant 2- Activate self ordering 3- Create a self order from the mobile menu 4- Create another order from the Shop POS **Current behavior before PR:** There is a conflict happening in order numbers between Self order and other orders where at some point we might have two orders with the same number. This is happening because when adding the order from Shop we get the sequence number from the JS side in Order class https://github.com
Original PR description
**Steps to reproduce:** 1- Install POS and POS restaurant 2- Activate self ordering 3- Create a self order from the mobile menu 4- Create another order from the Shop POS **Current behavior before…
**Steps to reproduce:** 1- Install POS and POS restaurant 2- Activate self ordering 3- Create a self order from the mobile menu 4- Create another order from the Shop POS **Current behavior before PR:** There is a conflict happening in order numbers between Self order and other orders where at some point we might have two orders with the same number. This is happening because when adding the order from Shop we get the sequence number from the JS side in Order class https://github.com/odoo/odoo/blob/d82ffde0b316c52f726c247bf6f3d38e2e73e405/addons/point_of_sale/static/src/app/store/models.js#L1383 but in case of self order. We get it from ir_sequence https://github.com/odoo/odoo/blob/d82ffde0b316c52f726c247bf6f3d38e2e73e405/addons/pos_self_order/controllers/orders.py#L19 So we don't have a shared sequence between them. **Desired behavior after PR is merged:** We are now creating another sequence for self-order and as agreed with the PO we will have 'S' before the order number if the order is self-order opw-3809595 Forward-Port-Of: odoo/odoo#179744 Forward-Port-Of: odoo/odoo#162119
Issue ---- When work orders are computed, the compute function may delete some of the previous work orders. However, it doesn't take into account these deleted work orders when choosing whether to update or create a work order. So it ends up issuing an update command after a delete command for the same order. This happens during splitting and causes work orders to disappear. Steps ----- - Open Manufacturing -> Create a storable product and a BoM for this product. - Create a prod
Original PR description
Issue ---- When work orders are computed, the compute function may delete some of the previous work orders. However, it doesn't take into account these deleted work orders when choosing whether to…
Issue ---- When work orders are computed, the compute function may delete some of the previous work orders. However, it doesn't take into account these deleted work orders when choosing whether to update or create a work order. So it ends up issuing an update command after a delete command for the same order. This happens during splitting and causes work orders to disappear. Steps ----- - Open Manufacturing -> Create a storable product and a BoM for this product. - Create a product as part of the BoM. - For the latter product, create another BoM that is a kit. - Create an operation in the BoM of the kit. - Create a manufacturing order for the storable product (first created product). - Set a quantity larger than 1, say 10, and manually save the MO (without confirming it). - Split the MO into same quantity (e.g. 10), and after confirming the split the following traceback is triggered: `remaining_qty = initial_workorder_remaining_qty[index % workorders_len] ZeroDivisionError: integer division or modulo by zero` opw-3994583 Forward-Port-Of: odoo/odoo#179821 Forward-Port-Of: odoo/odoo#171493
Steps --- * install `stock`, `sale_management` * configure reception in 2 steps (*Setting > Multi-step routes* + *Configure Warehouse Routes*) * make *Stock/Input* a return location (*Inventory* > *Configuration* > *Stock/Input* form) * create an SO for 5 units of a storable product (say P) * (put at least 5 of P available in stock) * confirm it > go to the delivery > validate * *Return* > from the wizard set *Stock/Input* as the return location * validate the `Customers -> Input`
Original PR description
Steps --- * install `stock`, `sale_management` * configure reception in 2 steps (*Setting > Multi-step routes* + *Configure Warehouse Routes*) * make *Stock/Input* a return location (*Inventory* >…
Steps --- * install `stock`, `sale_management` * configure reception in 2 steps (*Setting > Multi-step routes* + *Configure Warehouse Routes*) * make *Stock/Input* a return location (*Inventory* > *Configuration* > *Stock/Input* form) * create an SO for 5 units of a storable product (say P) * (put at least 5 of P available in stock) * confirm it > go to the delivery > validate * *Return* > from the wizard set *Stock/Input* as the return location * validate the `Customers -> Input` receipt * validate the `Input -> Stock` internal transfer * => on the orignal SO the delivered quantity is now -5 instead of 0 Cause --- When generating moves in a push rules, we copy the fields of the generating move, including `to_refund`, so both moves affect the delivered quantity. But when we check if a return move should affect the delivered/received qty on SO/POs, we only check the `usage` of the destination location; so in the case of multi-step routes, moves further down the chain will affect the qty twice or more, and we will have a negative delivered quantity Fix --- Use a stricter check to determined which moves should affect SO quantities opw-4129497 Forward-Port-Of: odoo/odoo#178392
Loyalty programs discount could be applied on specific products through a domain. When putting a domain with a True or False as a third operand (e.g. ('is_available_in_pos', '=', True)), the PoS was crashing at launch because the domain goes through a json.dumps that changes the Boolean to lower case and then through ast.literal_eval that doesn't accept lower case Boolean. The change is to replace lower case Boolean to upper case Boolean in the domain before the ast.literal_eval. --- I co
Original PR description
Loyalty programs discount could be applied on specific products through a domain. When putting a domain with a True or False as a third operand (e.g. ('is_available_in_pos', '=', True)), the PoS was crashing at launch because the domain goes through a json.dumps that changes the Boolean to lower case and then through ast.literal_eval that doesn't accept lower case Boolean.
The change is to replace lower case Boolean to upper case Boolean in the domain before the ast.literal_eval.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#179438
Forward-Port-Of: odoo/odoo#175805Steps to reproduce: ----------------------------------------------------------------------------------------------------------- 1. Install the Project. 2. Go to settings and select customer ratings. 3. Then go to any project edit the stage and select the template for the rating email template. 4. Then change the stage of any task. check the email and give a rating to your task. 5. Check the Discus app then you will see a notification and no space between the name of the task and the
Original PR description
Steps to reproduce: ----------------------------------------------------------------------------------------------------------- 1. Install the Project. 2. Go to settings and select customer ratings.…
Steps to reproduce: ----------------------------------------------------------------------------------------------------------- 1. Install the Project. 2. Go to settings and select customer ratings. 3. Then go to any project edit the stage and select the template for the rating email template. 4. Then change the stage of any task. check the email and give a rating to your task. 5. Check the Discus app then you will see a notification and no space between the name of the task and the calendar icon. Issue: ----------------------------------------------------------------------------------------------------------- - A missing space between the name of the task and the calendar icon. Cause: ----------------------------------------------------------------------------------------------------------- - The task's name and the calendar icon are not separated. Fix: ----------------------------------------------------------------------------------------------------------- - After this commit there is a space between the name of the task and the calendar icon task-3681318 Forward-Port-Of: odoo/odoo#179669 Forward-Port-Of: odoo/odoo#151700
It happens often enough that whenever someone wants to install The US Accounting localization they have a hard time finding it because they do not know that the "Generic Chart Template" is for the US. This task will rename the template so that it's more clear for users. task: 4146856 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179621 Forward-Port-Of: odoo/odoo#179133
Original PR description
It happens often enough that whenever someone wants to install The US Accounting localization they have a hard time finding it because they do not know that the "Generic Chart Template" is for the US. This task will rename the template so that it's more clear for users. task: 4146856 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179621 Forward-Port-Of: odoo/odoo#179133
Check identity would previously store a wrong password until the next grabage collection. This commit fix this behaviour. Forward-Port-Of: odoo/odoo#179960 Forward-Port-Of: odoo/odoo#179866
Original PR description
Check identity would previously store a wrong password until the next grabage collection. This commit fix this behaviour. Forward-Port-Of: odoo/odoo#179960 Forward-Port-Of: odoo/odoo#179866
Change ----- Take into account the case where the key is 0, which is falsy. Currently 0 acts the same as backspace. Steps ----- 1. Enable PIN identification in Attendances settings. 2. Attendances > Kiosk mode > Identify manually. opw-4155987 Forward-Port-Of: odoo/odoo#179501
Original PR description
Change ----- Take into account the case where the key is 0, which is falsy. Currently 0 acts the same as backspace. Steps ----- 1. Enable PIN identification in Attendances settings. 2. Attendances > Kiosk mode > Identify manually. opw-4155987 Forward-Port-Of: odoo/odoo#179501
No description available.
In this commit: =================== If the customer is not loaded, you can find them in the backend by barcode now. Task - 4074907 Forward-Port-Of: odoo/odoo#179774 Forward-Port-Of: odoo/odoo#177576
Original PR description
In this commit: =================== If the customer is not loaded, you can find them in the backend by barcode now. Task - 4074907 Forward-Port-Of: odoo/odoo#179774 Forward-Port-Of: odoo/odoo#177576
Steps to reproduce the issue: ============================= - Switch to dark mode - Go to any record with a chatter - Open mail composer in log note - Add a table - Save - Switch to light mode - The table is still dark Origin of the issue: ==================== Since in dark mode we add some styles to improve the display, those styles are getting applied in convert_inline. Solution: ========= Skip the stylesheets for table that have color only for now since skipping all styles
Original PR description
Steps to reproduce the issue: ============================= - Switch to dark mode - Go to any record with a chatter - Open mail composer in log note - Add a table - Save - Switch to light mode - The…
Steps to reproduce the issue: ============================= - Switch to dark mode - Go to any record with a chatter - Open mail composer in log note - Add a table - Save - Switch to light mode - The table is still dark Origin of the issue: ==================== Since in dark mode we add some styles to improve the display, those styles are getting applied in convert_inline. Solution: ========= Skip the stylesheets for table that have color only for now since skipping all styles can produce more issues. We skip also the background-color and border color for light mode too because they will not display the same in dark mode. Before: ======   After: =====   opw-4137267 Forward-Port-Of: odoo/odoo#178520
The migration method from old config files to the new `odoo.conf` searched for a file named `subject` instead of `odoo-subject.conf`. Forward-Port-Of: odoo/odoo#179861
Original PR description
The migration method from old config files to the new `odoo.conf` searched for a file named `subject` instead of `odoo-subject.conf`. Forward-Port-Of: odoo/odoo#179861
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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
Original PR description
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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#179297 Forward-Port-Of: odoo/odoo#169922
When ```KE eTIMS: Fetch KRA notices from eTIMS``` cron runs and eTIMS API returns an error, a traceback will appear. Steps to reproduce the error: - Install ```l10n_ke_edi_oscu``` - Set up Kenya eTIMS Integration - Run ```KE eTIMS: Fetch KRA notices from eTIMS``` cron Traceback: ``` KeyError: 'noticeList' File "odoo/tools/safe_eval.py", line 391, in safe_eval return unsafe_eval(c, globals_dict, locals_dict) File "ir.actions.server(909,)", line 1, in <module> File "home/
Original PR description
When ```KE eTIMS: Fetch KRA notices from eTIMS``` cron runs and eTIMS API returns an error, a traceback will appear. Steps to reproduce the error: - Install ```l10n_ke_edi_oscu``` - Set up Kenya…
When ```KE eTIMS: Fetch KRA notices from eTIMS``` cron runs and eTIMS API returns
an error, a traceback will appear.
Steps to reproduce the error:
- Install ```l10n_ke_edi_oscu```
- Set up Kenya eTIMS Integration
- Run ```KE eTIMS: Fetch KRA notices from eTIMS``` cron
Traceback:
```
KeyError: 'noticeList'
File "odoo/tools/safe_eval.py", line 391, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)
File "ir.actions.server(909,)", line 1, in <module>
File "home/odoo/src/enterprise/saas-17.4/l10n_ke_edi_oscu/models/l10n_ke_edi_oscu_notice.py", line 35, in _cron_l10n_ke_oscu_get_notices
notice_map = {notice['noticeNo']: notice for notice in data['noticeList']}
ValueError: <class 'KeyError'>: "noticeList" while evaluating
'model._cron_l10n_ke_oscu_get_notices()'
File "odoo/addons/base/models/ir_cron.py", line 562, in _callback
self.env['ir.actions.server'].browse(server_action_id).run()
File "home/odoo/src/custom/trial/saas_trial/models/sentry.py", line 33, in run
res = super().run()
File "odoo/addons/base/models/ir_actions.py", line 989, in run
res = runner(run_self, eval_context=eval_context)
File "addons/website/models/ir_actions_server.py", line 61, in _run_action_code_multi
res = super(ServerAction, self)._run_action_code_multi(eval_context)
File "odoo/addons/base/models/ir_actions.py", line 821, in _run_action_code_multi
safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self)) # nocopy allows to return 'action'
File "odoo/tools/safe_eval.py", line 405, in safe_eval
raise ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr))
```
https://github.com/odoo/enterprise/blob/019a7cdd5a3071c0948656bdcacc95b63c2e8842/l10n_ke_edi_oscu/models/l10n_ke_edi_oscu_notice.py#L35 When eTIMS API returns an error, data will be empty,
So, it will lead to the above traceback.
sentry-5804573762, 5809459581
Forward-Port-Of: odoo/enterprise#69727### Steps to reproduce: - Enable packages in the inventory settings - Create a storable product tracked by Lot and put 4 units in stock: - 2 Units for "LOT001" - 2 Units for "LOT002" - Create and confirm a sale order for 2 units - Go to the barcode app > Operations > Delivery orders > your Delivery Order - Register "LOT002" manually > One unit will be added to your delivery moves. - Put in pack > You can unroll the move to see that one move line was created for 1 unit with a package a
Original PR description
### Steps to reproduce: - Enable packages in the inventory settings - Create a storable product tracked by Lot and put 4 units in stock: - 2 Units for "LOT001" - 2 Units for "LOT002" - Create and…
### Steps to reproduce: - Enable packages in the inventory settings - Create a storable product tracked by Lot and put 4 units in stock: - 2 Units for "LOT001" - 2 Units for "LOT002" - Create and confirm a sale order for 2 units - Go to the barcode app > Operations > Delivery orders > your Delivery Order - Register "LOT002" manually > One unit will be added to your delivery moves. - Put in pack > You can unroll the move to see that one move line was created for 1 unit with a package and 1 unit is still missing. - Register a second unit of "LOT002" manually to put in an other pack > The line is updated to 2 units instead of 1 so that the additional unit can not be packed in an other pack ### Expected behavior: You should be able to pack units of the same lot in different packages. ### Cause of the issue: To determine which line is going to be updated by our lot registration the `_findLine` method is called. This method look for each line in pageLines and when it finds a candidate move line it continues to find a better candidate. However, fully packed moves should not be considered as valid candidates. opw-4068334 Forward-Port-Of: odoo/enterprise#69522 Forward-Port-Of: odoo/enterprise#68535
[This commit] added in a new Carta Porte 3.0 PDF for Mexico in version saas-17.3 that inherits from the standard delivery slip, by removing all the tables related to the products etc. (for security reasons: the driver doesn't need to know what's in the cargo) and adding in some new required fields. This commit backports the report from saas-17.3 with the following changes: - We improved the layout a bit to make the report even clearer. - We corrected the "Num Reg ID Trib" and "Residencia Fi
Original PR description
[This commit] added in a new Carta Porte 3.0 PDF for Mexico in version saas-17.3 that inherits from the standard delivery slip, by removing all the tables related to the products etc. (for security reasons: the driver doesn't need to know what's in the cargo) and adding in some new required fields. This commit backports the report from saas-17.3 with the following changes: - We improved the layout a bit to make the report even clearer. - We corrected the "Num Reg ID Trib" and "Residencia Fiscal" of the "Figura"'s to use the right value and show them per figura. - We corrected the departure and arrival date (they were swapped). These changes will be forward-ported again to the upper versions. [This commit]: https://github.com/odoo/enterprise/commit/af14612ec5942acdc06584ec8ff9d8bf26998ae7 task-3990042 Forward-Port-Of: odoo/enterprise#69189 Forward-Port-Of: odoo/enterprise#65337
To reproduce: Create an invoice, in foreign currency. Use a withholding tax, like 10% ILA Post the invoice => The rendering of the dte fails It's still using a deprecated method, which has been removed after 16. no task Forward-Port-Of: odoo/enterprise#69769
Original PR description
To reproduce: Create an invoice, in foreign currency. Use a withholding tax, like 10% ILA Post the invoice => The rendering of the dte fails It's still using a deprecated method, which has been removed after 16. no task Forward-Port-Of: odoo/enterprise#69769
This commit adds an additional step when aggregating the values for sending invoice CFDI, and ensures the final result to be within the allowed maximum rounding error of `0.01`. Purpose: When creating an invoice with the following amounts: - line 1: 505.0, tax_16 - line 2: 495.0, tax_16 - line 3: 475.0, tax_16 - set tax_16.price_include to True The CFDI result of the invoice when generated using "round globally" method on either normal or global sending will be rejected by the
Original PR description
This commit adds an additional step when aggregating the values for sending invoice CFDI, and ensures the final result to be within the allowed maximum rounding error of `0.01`. Purpose: When…
This commit adds an additional step when aggregating the values for sending invoice CFDI, and ensures the final result to be within the allowed maximum rounding error of `0.01`. Purpose: When creating an invoice with the following amounts: - line 1: 505.0, tax_16 - line 2: 495.0, tax_16 - line 3: 475.0, tax_16 - set tax_16.price_include to True The CFDI result of the invoice when generated using "round globally" method on either normal or global sending will be rejected by the mexican authorities. This is caused by an inherent flaw of how Odoo calculates line amounts. The `compute_all` method in taxes rounds all the lines in cfdi_values to 2 digits precision in the final result, resulting in a loss of precision when calculating the total amounts. The mexican authorities requires us to make sure that: 1. the sum of the base/tax amounts in the lines (Conceptos) matches the total 2. the rounding of the total base and tax amount to be within 0.01 rounding error In the provided example, in Odoo, we will generate a total of 1271.54 base amount and 203.46 tax amount. This is not acceptable by the mexican government because 1271.54 * 0.16 equals 203.4464, which when compared with our result of the tax amount exceeds the maximum allowed rounding error. To fix this, we have to sacrifice our correctness and generate amounts that will have disrepancies whenever we need it (for global rounding method). We will now re-calculate the base and tax amounts in `cfdi_values` based on the total amount and generate new amounts with 6 digits precision, and apply that on each line of Conceptos. The 2 digit rounding precision limit on `Importe` and `ValorUnitario` XML will be changed to 6 digits to make sure we pass the first requirement, as the mexican authorities will also calculate their total and check if it matches our total. Due to this change, all of the test files than contain this element needs to be udpated too. task-id: 4071712 Forward-Port-Of: odoo/enterprise#69693 Forward-Port-Of: odoo/enterprise#68319
Currently, when a user requests an invoice from a POS ticket under a Mexican company, the CFDI document attached to the invoice incorrectly uses the buyer's name instead of using the provided company name. ### Steps to reproduce * install `l10n_mx_edi_pos` * Switch to a Mexican company * the settings enable "Generate a code on ticket" * validate a POS order * follow the instructions on the ticket to generate an invoice. Make sure to provide a company name on the customer form. When
Original PR description
Currently, when a user requests an invoice from a POS ticket under a Mexican company, the CFDI document attached to the invoice incorrectly uses the buyer's name instead of using the provided company name. ### Steps to reproduce * install `l10n_mx_edi_pos` * Switch to a Mexican company * the settings enable "Generate a code on ticket" * validate a POS order * follow the instructions on the ticket to generate an invoice. Make sure to provide a company name on the customer form. When checking the XML file that is forwarded to the Mexican tax authorities, you see that only the "individual name" is registered there as the buyer, when it should be the company name. opw-4103543 opw-4071503 Forward-Port-Of: odoo/enterprise#69872 Forward-Port-Of: odoo/enterprise#69126
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#69520 Forward-Port-Of: odoo/enterprise#64964
Original PR description
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#69520 Forward-Port-Of: odoo/enterprise#64964
This commit will allow to hide the sepa uetr depending on the pain version and the payment method. task: 4167726 Forward-Port-Of: odoo/enterprise#69659
Original PR description
This commit will allow to hide the sepa uetr depending on the pain version and the payment method. task: 4167726 Forward-Port-Of: odoo/enterprise#69659
We overwrite the CSS of the thread popover to prevent it from being displayed in dark mode, but we missed the CSS of some elements. Task: [4111072](https://www.odoo.com/web#id=4111072&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#68445
Original PR description
We overwrite the CSS of the thread popover to prevent it from being displayed in dark mode, but we missed the CSS of some elements. Task: [4111072](https://www.odoo.com/web#id=4111072&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#68445