Tuesday, September 26, 2023
36 changes · master
New functionality added to Odoo
Spreadsheet users can now remove duplicate rows directly from the data menu, making it easier to clean selected data without manual review. Notifications were also adjusted so messages can better control whether they stay visible or disappear automatically.
Original PR description
[IMP] remove duplicate: add the remove duplicate functionality Add a new feature in the data menu allowing to remove duplicate rows in the selection part of task 2984935 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> [REF/IMP] notify: change behavior Currently the payload allowing to notify the user is composed of a text and a tag. The tag, when it is the same, avoids renotifying the user. We believe that it is the responsibility of the notifying element to relaunch a notification or not. So we remove this tag in this commit. Also we add in the payload a "sticky" attribute indicating if the notification should or should not clear itself after some time part of task 2984935 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
Users can now add images directly over spreadsheet cells from the interface, using files from their computer. Images are saved in Odoo and can be resized proportionally, copied, cut, pasted, reset, or deleted, making spreadsheets more flexible for visual content.
Original PR description
Description of the issue/feature this PR addresses: Add the insertion of image in spreadsheet. Desired behavior after PR is merged: Can insert an image over cells from the UI. The resize of image from a corner anchor keep his ratio. The user can choose an image from his computer. FileUploader save the image in Odoo. Can copy cut paste reset_size and delete images. Figure of image don't have border. Odoo task ID: [2955759](https://www.odoo.com/web#id=2955759&cids=1&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This update makes employee time off dates and durations more consistent by using the requested leave dates as the main source and calculating the final duration automatically. It also improves multi-company access checks and reduces unexpected changes when company-wide days off are edited, helping HR teams manage leave more reliably.
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
Resolved issues and error corrections
This fix ensures Odoo Studio can display hidden linked fields without triggering an error. It does this by loading the field label information needed for those fields, improving reliability when customizing views.
Original PR description
Before this commit, the display_name wasn't read if the field was invisible. So, when displaying invisible fields in studio mode a traceback was popping up. Now, if you are in studio mode, the display_name is read, even for the invisible fields. TASK-ID: 3453701 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
Code cleanup and technical improvements
Miscellaneous changes
task-3388347 linked to https://github.com/odoo/enterprise/pull/47776 Forward-Port-Of: odoo/odoo#136388
Original PR description
task-3388347 linked to https://github.com/odoo/enterprise/pull/47776 Forward-Port-Of: odoo/odoo#136388
Chat channel changes are now sent to users through live notifications, so updates appear promptly without relying on slower refresh behavior. This improves responsiveness in Odoo Discuss and helps users see conversation changes more reliably.
Original PR description
Before this PR, channel update where not sent via bus notifications. Part of task-2821415
Recruitment can now ignore configured email addresses when creating applicants from incoming emails. This helps prevent unwanted provider or automated email addresses from being copied into applicant and contact records, while keeping valid applicant emails synchronized for communication.
Original PR description
- Create a system parameter called "blacklisted_emails" and holding all emails that we want to consider separated by a , - When an applicant is generated from an email, if the email is present on the system_parameter, don't create a partner automatically + don't use the blacklisted email on the field email either - When the field email is updated on the contact, or on the applicant and that the new value is not present in the blacklist, synchronize both records. (as long as we are obliged to use the partner to send the email, we need to keep it synchronized with applicant) - Display the used email on this screen task-id: 3358086 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo spreadsheets now better follow each user's locale, including formatting differences for numbers, dates, formulas, charts, lists, pivots, and accounting values. This makes spreadsheet reports easier to read and reduces mistakes for teams working across different languages and regions.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: Task: [3222401](https://www.odoo.com/web#id=3222401&menu_id=4720&cids=1&action=333&active_id=2328&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Contact merges now include company-specific fields, helping ensure important company-dependent information is preserved when duplicate partners are combined. This reduces the risk of missing or inconsistent business data after cleanup.
Original PR description
Merge company_dependent fields when merginf base_partner task-id: 3103035 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
The Helpdesk onboarding flow is now smoother by removing an unnecessary save step. Field service actions are clearer with the button renamed to "Plan Intervention", and demo data now better supports customer sales scenarios.
Original PR description
**=helpdesk_fsm, helpdesk_sale_timesheet
Before this commit :
-> in onboarding tour there was a step asking users to save the record
-> button whose name was Create Task was there
-> no demo data for My Customers whose SOL is not linked
IMP:
-> removed the tour step asking users to save the record
-> button name renamed to Plan Intervention
-> added demo data for My Customers whose SOL is not linked and salesperson is
set as mitchell admin
taskId:3459985The salary contract document upload button has been visually adjusted to better match the intended interface style. This is a small usability and consistency improvement with minimal business impact.
Original PR description
task-3457067
The timesheet module now shows guidance that better matches how users are viewing their timesheets. List and Kanban views get more relevant tips, while the existing grid view guidance remains unchanged, reducing confusion for users.
Original PR description
Revise the tips in the timesheet module for the list and Kanban views. The current information is not applicable in those contexts. Improve: Adjust the tip generation based on the view type. This will ensure that tips are appropriately tailored for list and kanban views, while maintaining the existing tip for the grid view. task-3459964
The data merge tool now handles fields whose values can differ by company. This helps keep merged records accurate across multi-company setups and reduces manual cleanup after deduplication.
Original PR description
Merge company_dependent fields with data merge
The salary contract email template was updated to better handle cases where no contract differences are detected. This helps employees and HR teams receive clearer, more appropriate communication and reduces confusion during salary contract updates.
Original PR description
…differences task-3390450
A technical field that appeared on the task timesheets page in Field Service is now hidden from users. This keeps the screen cleaner and prevents confusion from internal system information being shown during normal work.
Original PR description
**Steps:** - Open project.task form view in Field Service - Go to Timesheets page - the 'is sales order item manually edited' field is visible in Field Service **Issue:** - The technical field is displayed to the user **Cause:** - The view modifier is not updated **Fix:** - Using column_invisible instead of invisible. **Task:** 3461563
The Helpdesk timesheet view now hides internal fields that were accidentally visible to users. This keeps the screen cleaner and prevents confusion from technical information that is not meant for day-to-day use.
Original PR description
**Steps:** - Open project.task form view in Helpdesk - Go to Timesheets page - The 'is sales order item manually edited' and 'invoice' field is visible **Issue:** - The technical field is displayed to the user **Cause:** - The view modifier is not updated **Fix:** - Using column_invisible instead of invisible. **Task:** 3461563
The Share on Forum wizard now displays the Forum field in proper alignment. This removes a small visual inconsistency and makes the helpdesk-to-forum sharing flow look cleaner for users.
Original PR description
Steps: - Install website_helpdesk_forum - Click on ticket on team card - In kanban view click on create button - When we click on Share on Forum button a wizard form open Issue: - Forum field is not correctly aligned Cause: - There was some unnecessary padding which was causing alignment issue. Fix: - added style padding-left for correct alignment of forum field. task-3474577
The Planning role kanban menu has been cleaned up so edit and delete actions appear properly aligned. This makes the configuration screen look more polished and easier to use for administrators.
Original PR description
Steps and Issue: In planning > configuration > in roles > kanban view > in burger menu edit and delete buttons are not correctly aligned Fix : We have removed unnecessary div elements task-3302412
Time off requests now rely on the employee's requested dates as the main input, with system dates calculated automatically using work schedules and time zones. This reduces inconsistent leave calculations and makes payroll, planning, timesheets, documents, projects, and helpdesk integrations easier to maintain.
Original PR description
The idea of current date_{from,to} computations is as follows: The user selects the request_date_{from,end} (and optionally request_hour_{from,to} and these inputs are then processed into a…
The idea of current date_{from,to} computations is as follows:
The user selects the request_date_{from,end} (and optionally request_hour_{from,to} and these inputs are then processed into a date_{to,from}, taking into account the type of leave, the work schedule (resource_calendar) and time zone (since date_{to,from} are saved in UTC while the request_dates are stored in the user's timezone.
However, in practice this computation is very messy, resulting in date_{to,from} needing to be specified in all demo data and test cases, even though it should be derived from the request dates. Various superfluous or poorly named methods also exist in this flow (eg _get_start_or_end_from_attendance which really performs a timezone conversion, the logic of which resource calendar to use is scattered across the whole model etc).
date_{to,from} are used many times as inputs throughout the code, with code being present te inverse compute request_date_{from,to} from these values. However in reality this is not possible to do consistently.
Therefore with this commit, we restore request_date_{from,to} as the sole possible inputs, with date_{from,to} being derived from them. In addition, the timezone and resource calendar are consolidated into their own fields, with a single computation method computing them.
task-3081565If the currency_id and cost_currency_id differ for a product, the cost in the purchase order is wrong. The purchase order should use cost_currency_id instead of currency_id. ### Steps to reproduce on runbot: -Set the currency of the main company as Dollars (USD). -Choose in runbot the company "My Belgian Company" as its currency is Euro. - Add the currency rate of today between EUR and USD - Take a product and edit the cost to 100 EUR - as the cost field is linked with the currency of the
Original PR description
If the currency_id and cost_currency_id differ for a product, the cost in the purchase order is wrong. The purchase order should use cost_currency_id instead of currency_id. ### Steps to reproduce on…
If the currency_id and cost_currency_id differ for a product, the cost in the purchase order is wrong. The purchase order should use cost_currency_id instead of currency_id. ### Steps to reproduce on runbot: -Set the currency of the main company as Dollars (USD). -Choose in runbot the company "My Belgian Company" as its currency is Euro. - Add the currency rate of today between EUR and USD - Take a product and edit the cost to 100 EUR - as the cost field is linked with the currency of the company, make sure there is no information on the tab purchase, so the vendor pricelist is not present. - Go inside the purchase module and start a request for a quotation leave the currency as EUR - Select the product to purchase ### Current Behavior: The unit price will be (100*currency rate). If you do the same but take the currency as USD the product unit price on the purchase order line will be 100 ### Expected Behavior: The unit price should have been 100 Euros. And when the dollar is chosen as currency, the exchange should have been applied. OPW-3460551 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133024
On Database having a postgresql server version superior or equals than 14.0, a feature called memoization is caching result of the lateral join made in this query. This cache creates an issue that results that customers have the same result for their bank journals. By adding a LIMIT 1 at the end of the lateral join query, the memoization is not enabled (according to query plan). Another solution could be to change the condition of this lateral join (currently ON True) for a condition on the
Original PR description
On Database having a postgresql server version superior or equals than 14.0, a feature called memoization is caching result of the lateral join made in this query. This cache creates an issue that results that customers have the same result for their bank journals. By adding a LIMIT 1 at the end of the lateral join query, the memoization is not enabled (according to query plan). Another solution could be to change the condition of this lateral join (currently ON True) for a condition on the journal id but it was less efficient. opw-3422495 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136352 Forward-Port-Of: odoo/odoo#136161
task-3457067 Forward-Port-Of: odoo/odoo#131041
Original PR description
task-3457067 Forward-Port-Of: odoo/odoo#131041
Current behavior before PR: -On selecting full screen/description for image toolbar stays. -On selecting description for image focus in not set on input field. Desired behavior after PR is merged: -Now toolbar is removed when selection changes. -Now on selecting description for image, focus is set on input field. task-3468251 Forward-Port-Of: odoo/odoo#132652
Original PR description
Current behavior before PR: -On selecting full screen/description for image toolbar stays. -On selecting description for image focus in not set on input field. Desired behavior after PR is merged: -Now toolbar is removed when selection changes. -Now on selecting description for image, focus is set on input field. task-3468251 Forward-Port-Of: odoo/odoo#132652
This commit adds the newly created string from https://github.com/odoo/odoo/pull/135294 into the web pot file. Forward-Port-Of: odoo/odoo#136471 Forward-Port-Of: odoo/odoo#135523
Original PR description
This commit adds the newly created string from https://github.com/odoo/odoo/pull/135294 into the web pot file. Forward-Port-Of: odoo/odoo#136471 Forward-Port-Of: odoo/odoo#135523
Without this, the seo saving would not forward the current website in the context. It's especially bad in this case as it's writting on views which are not triggering the COW due to the lack of a website_id in the context. Step to reproduce: - Go to /shop (if you didn't do anything, this will be bound to the `website_sale.products` view which has no website_id set and is called a generic view) - Open "Optimize SEO" dialog and type something in the title - Save - It saved the change on the
Original PR description
Without this, the seo saving would not forward the current website in the context. It's especially bad in this case as it's writting on views which are not triggering the COW due to the lack of a website_id in the context. Step to reproduce: - Go to /shop (if you didn't do anything, this will be bound to the `website_sale.products` view which has no website_id set and is called a generic view) - Open "Optimize SEO" dialog and type something in the title - Save - It saved the change on the mentioned view, without duplicating it (COW) before writing on it. The title you added is now applied to every websites and not only the one you edited, which is against the website holy grail rule: only the website you edit should be changed. Technically, this is because we refactored that part of the code in Odoo 16: the website is now editable in the backend. opw-3499285 Forward-Port-Of: odoo/odoo#136084
To reproduce ============ - create a purchase order and confirm it - create a Bill, set its Bill date and Accounting date to different dates to today - save it, then choose the created PO in autocomplete field the Accounting day will be changed to today Problem ======= when calling the autocomplete, some values will be updated on the record, where `move_type` is one of them, and updating this field will trigger the compute of accounting date. Solution ======== if the value of `move
Original PR description
To reproduce ============ - create a purchase order and confirm it - create a Bill, set its Bill date and Accounting date to different dates to today - save it, then choose the created PO in autocomplete field the Accounting day will be changed to today Problem ======= when calling the autocomplete, some values will be updated on the record, where `move_type` is one of them, and updating this field will trigger the compute of accounting date. Solution ======== if the value of `move_type` on the record is the same as the one of the update, it should not be taken into account which will avoid uneeded recompute. opw-3381530 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132841
Currently, errors occur when generating the e-invoicing for ZATCA (Saudi Arabia). This is because currently, users create invoices without a tax, but in ZATCA (Saudi Arabia), the invoice line must require at least one tax. Error: ``` ValueError: can only parse strings File "odoo/http.py", line 2134, in __call__ response = request._serve_db() File "odoo/http.py", line 1710, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "odoo/service/model
Original PR description
Currently, errors occur when generating the e-invoicing for ZATCA (Saudi Arabia). This is because currently, users create invoices without a tax, but in ZATCA (Saudi Arabia), the invoice line must…
Currently, errors occur when generating the e-invoicing for ZATCA (Saudi Arabia).
This is because currently, users create invoices without a tax, but in
ZATCA (Saudi Arabia), the invoice line must require at least one tax.
Error:
```
ValueError: can only parse strings
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1938, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_button
action = self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "addons/account_edi/models/account_move.py", line 351, in button_process_edi_web_services
self.action_process_edi_web_services(with_commit=False)
File "addons/account_edi/models/account_move.py", line 355, in action_process_edi_web_services
docs._process_documents_web_services(with_commit=with_commit)
File "addons/account_edi/models/account_edi_document.py", line 243, in _process_documents_web_services
self._process_job(job)
File "addons/account_edi/models/account_edi_document.py", line 199, in _process_job
edi_result = method_to_call(moves)
File "addons/l10n_sa_edi/models/account_edi_format.py", line 328, in _l10n_sa_post_zatca_edi
xml_content = invoice._l10n_sa_generate_unsigned_data()
File "addons/l10n_sa_edi/models/account_move.py", line 156, in _l10n_sa_generate_unsigned_data
invoice_hash_hex = self.env['account.edi.xml.ubl_21.zatca']._l10n_sa_generate_invoice_xml_hash(xml_content).decode()
File "addons/l10n_sa_edi/models/account_edi_xml_ubl_21_zatca.py", line 77, in _l10n_sa_generate_invoice_xml_hash
xml_sha = self._l10n_sa_generate_invoice_xml_sha(xml_content)
File "addons/l10n_sa_edi/models/account_edi_xml_ubl_21_zatca.py", line 64, in _l10n_sa_generate_invoice_xml_sha
root = etree.fromstring(xml_content)
File "src/lxml/etree.pyx", line 3255, in lxml.etree.fromstring
File "src/lxml/parser.pxi", line 1912, in lxml.etree._parseMemoryDocument
```
The validation error is present at Line [1], but due to recent changes in
Code [1], the validation is not working. As a result, the user can create an
invoice line without tax. For more information, see PR [1].
This commit fixes the above issue by filtering invlocice line ids that have display_type 'product'.
Line [1]-https://github.com/odoo/odoo/blob/d2f0a0f2c9a18a7a6cef8ca3be52324ad2a1dad6/addons/l10n_sa_edi/models/account_edi_format.py#L406 Code [1] https://github.com/odoo/odoo/commit/d8d47f9ff8554f4b39487fd2f13c153c7d6f958d#diff-78f3e1847de8ca0acf28d72a412947a549acdb08142d1dadf7646363d7972cb0R268-R280
PR [1]-https://github.com/odoo/odoo/pull/130034
sentry-4467808485, 4467794808
Forward-Port-Of: odoo/odoo#135737Steps: - install `sale_subscription` with demo-data - Go to subscription - Create a new one - Set Monthly subscription with `Office Cleaning Service (SUB)` - Set quantity to 2.0 - Confirm - Create Invoice (Regular Invoice) - Go back to subscription - Click to Upsell - Remove `start_date` - Set quantity to 4.0 - Save - Confirm - Create Invoice - Traceback ``` ... File "/home/odoo/src/enterprise/saas-16.3/sale_subscript
Original PR description
Steps: - install `sale_subscription` with demo-data - Go to subscription - Create a new one - Set Monthly subscription with `Office Cleaning Service (SUB)` - Set quantity to 2.0 - Confirm - Create…
Steps:
- install `sale_subscription` with demo-data
- Go to subscription
- Create a new one
- Set Monthly subscription with `Office Cleaning Service (SUB)`
- Set quantity to 2.0
- Confirm
- Create Invoice (Regular Invoice)
- Go back to subscription
- Click to Upsell
- Remove `start_date`
- Set quantity to 4.0
- Save
- Confirm
- Create Invoice
- Traceback
```
...
File "/home/odoo/src/enterprise/saas-16.3/sale_subscription/models/sale_order_line.py", line 259, in _prepare_invoice_line
new_period_start = max(self.order_id.start_date or fields.Datetime.today(), self.order_id.first_contract_date)
TypeError: can't compare datetime.datetime to datetime.date
```
Because `self.order_id.start_date` is `False` we fallback to `fields.Datetime.today()`, but if we compare it to `self.order_id.first_contract_date`, a traceback will be raised.
A solution could be to use `Date` instead of `Datetime` to match `first_contract_date` field type
Forward-Port-Of: odoo/enterprise#47827
Forward-Port-Of: odoo/enterprise#47532Currently, the calls are dispatched to the section itself, instead of the main report's custom handler. That is because the `report_id` in the options matches the report the dispatch method is called from. We should first check `on_sections_source` and call the report with the `sections_source_id` (the source report) with the correct options. Otherwise, the custom handler's actions are not being called, like custom file export. Forward-Port-Of: odoo/enterprise#47844
Original PR description
Currently, the calls are dispatched to the section itself, instead of the main report's custom handler. That is because the `report_id` in the options matches the report the dispatch method is called from. We should first check `on_sections_source` and call the report with the `sections_source_id` (the source report) with the correct options. Otherwise, the custom handler's actions are not being called, like custom file export. Forward-Port-Of: odoo/enterprise#47844
The view editor in `web_studio` was refactored in [commit 1]. A new OWL component (`Property`) now encapsulates different types of properties on views or their nodes. Those properties are usually set as an attribute on the corresponding xml node in the view. Before this commit, these values were serialized on the client side before being sent to the server by the rpc service. However, now the raw values are being sent over by the different sidebar editor classes resulting in python-like value
Original PR description
The view editor in `web_studio` was refactored in [commit 1]. A new OWL component (`Property`) now encapsulates different types of properties on views or their nodes. Those properties are usually set…
The view editor in `web_studio` was refactored in [commit 1]. A new OWL component (`Property`) now encapsulates different types of properties on views or their nodes. Those properties are usually set as an attribute on the corresponding xml node in the view. Before this commit, these values were serialized on the client side before being sent to the server by the rpc service. However, now the raw values are being sent over by the different sidebar editor classes resulting in python-like values ending up in the view xml. The bug described in the associated ticket arises because in some places `archParseBoolean` is being used to interpret the value (not triggering the bug), while in other places `JSON.parse` is being used (triggering the bug). Patching the `edit_view` route to translate boolean attributes into their JSON counterparts avoids the bug and results in the same xml as before the refactor. [commit 1]: https://github.com/odoo/enterprise/commit/d6d8aeff58e46373f72fc932cd84822a29ea76fb Forward-Port-Of: odoo/enterprise#46413
task-3457067 Forward-Port-Of: odoo/enterprise#45365
Original PR description
task-3457067 Forward-Port-Of: odoo/enterprise#45365
Creates a new component 'AccountReportButtonsBar' that allows to define two types of control panel buttons: 'single' and 'grouped'. 'Grouped' buttons will be display in a dropdown and 'single' buttons will always be displayed separately. To define a 'single' button, the key 'always_show: True' should be added at the button definition in options['buttons'] in the account report. The default behavior is 'grouped'. Forward-Port-Of: odoo/enterprise#47143
Original PR description
Creates a new component 'AccountReportButtonsBar' that allows to define two types of control panel buttons: 'single' and 'grouped'. 'Grouped' buttons will be display in a dropdown and 'single' buttons will always be displayed separately. To define a 'single' button, the key 'always_show: True' should be added at the button definition in options['buttons'] in the account report. The default behavior is 'grouped'. Forward-Port-Of: odoo/enterprise#47143
If there is a field that is still stored on aml, but that is not part of the field, it can be a problem. It could be due to bad migration, or wrong custo by clients). We will just skip those from the query for the report as they are indeed useless. opw-3502834 opw-3499902 Forward-Port-Of: odoo/enterprise#47576
Original PR description
If there is a field that is still stored on aml, but that is not part of the field, it can be a problem. It could be due to bad migration, or wrong custo by clients). We will just skip those from the query for the report as they are indeed useless. opw-3502834 opw-3499902 Forward-Port-Of: odoo/enterprise#47576
Issue: When we save a sale order with the freeze plan option enabled, it will be disabled when saving. Solution: Backport of commit: b7bd1ce20f5b9982178617db7f50f41b3170e4ec Note: Just add the test in FW form the original commit. opw-3505668 Forward-Port-Of: odoo/enterprise#47713 Forward-Port-Of: odoo/enterprise#47571
Original PR description
Issue: When we save a sale order with the freeze plan option enabled, it will be disabled when saving. Solution: Backport of commit: b7bd1ce20f5b9982178617db7f50f41b3170e4ec Note: Just add the test in FW form the original commit. opw-3505668 Forward-Port-Of: odoo/enterprise#47713 Forward-Port-Of: odoo/enterprise#47571
This commit fix the error on uploading xlsx file in requested document. Task-3437137 Forward-Port-Of: odoo/enterprise#44829
Original PR description
This commit fix the error on uploading xlsx file in requested document. Task-3437137 Forward-Port-Of: odoo/enterprise#44829
Allow to import a CFDI xml from the dashboard or the invoices, bills, refunds, credit notes view to generate the corresponding account_move. Create a l10n_mx_edi.document with state 'sent' when importing a CFDI on a sale journal, and 'received' on a purchase journal. This allows to behave as the out_invoice/out_refund was created in Odoo and follow the usual CFDI flow, but not for the in_invoice/in_refund which do not require to be sent to the government. In addition, it allows to 'Request
Original PR description
Allow to import a CFDI xml from the dashboard or the invoices, bills, refunds, credit notes view to generate the corresponding account_move. Create a l10n_mx_edi.document with state 'sent' when importing a CFDI on a sale journal, and 'received' on a purchase journal. This allows to behave as the out_invoice/out_refund was created in Odoo and follow the usual CFDI flow, but not for the in_invoice/in_refund which do not require to be sent to the government. In addition, it allows to 'Request Cancel' for out_invoice/out_refund (this button is not shown for in_invoice/in_refund since it can directly be cancelled). Finally, add a new selection on `l10n_mx_edi_cfdi_state` and on `mx_document.state` "received". This requires to clear the orm_cache as field.get_description() is cached and hence returns the selections without the new "received" state. task-3388347 linked to https://github.com/odoo/odoo/pull/136388 Forward-Port-Of: odoo/enterprise#47776