Daily updates from Odoo
Friday, June 14, 2024
18 changes · master
Enhancements to existing features
The spreadsheet locale indicator now appears in a neutral blue instead of red when the spreadsheet locale differs from the user's locale. This keeps users informed about date and number formatting expectations without implying that something is wrong.
Original PR description
there's currently a small globe on the top-right corner displayed when the spreadsheet locale is different than the user's locale. The goal is to draw attention of the user that he needs to write numbers and dates accordingly. The globe is currently red, which might be scary. The user might think something is wrong. This task changes the globe color to a more neutral "info" blue. Task: 3989485
Code cleanup and technical improvements
This update modernizes automated tests for Planning and related scheduling features without changing day-to-day functionality. It helps keep future changes safer by improving test coverage and maintainability across Planning, Project Forecast, and Sales Planning.
Original PR description
task-3890660
Miscellaneous changes
`l10n_co_dian` currently only depends on `l10n_co_edi`, which depends on `account`, and `account_edi_ubl_cii` is auto-installed when `account` is installed. The issue: when uninstalling `account_edi_ubl_cii`, `l10n_co_dian` will be kept since `account_edi_ubl_cii` is not in its dependencies, leaving `l10n_co_dian` in a corrupted state. Forward-Port-Of: odoo/enterprise#64427
Original PR description
`l10n_co_dian` currently only depends on `l10n_co_edi`, which depends on `account`, and `account_edi_ubl_cii` is auto-installed when `account` is installed. The issue: when uninstalling `account_edi_ubl_cii`, `l10n_co_dian` will be kept since `account_edi_ubl_cii` is not in its dependencies, leaving `l10n_co_dian` in a corrupted state. Forward-Port-Of: odoo/enterprise#64427
Problem: When enhancing reports for 16.4 compatibility, a VAT label was added to the followup report. This label will display even when no `vat` value exists. Purpose: Revert line similar to previous versions where if a `vat` value is present, then show the value. Otherwise, show nothing. Steps to Reproduce: 1. Have a contact with no `vat` value 2. Create an invoice for that contact 3. Send a followup report to that contact. opw-3970003 Forward-Port-Of: odoo/enterprise#64614
Original PR description
Problem: When enhancing reports for 16.4 compatibility, a VAT label was added to the followup report. This label will display even when no `vat` value exists. Purpose: Revert line similar to previous versions where if a `vat` value is present, then show the value. Otherwise, show nothing. Steps to Reproduce: 1. Have a contact with no `vat` value 2. Create an invoice for that contact 3. Send a followup report to that contact. opw-3970003 Forward-Port-Of: odoo/enterprise#64614
To access the xml, go to General Ledger, and export "Datev with Atch". You need invoices with attachment. This xml has a field date that should in fact contain a datetime! (following format 0001-01-01T00:00:00) opw-3976301 Forward-Port-Of: odoo/enterprise#64439
Original PR description
To access the xml, go to General Ledger, and export "Datev with Atch". You need invoices with attachment. This xml has a field date that should in fact contain a datetime! (following format 0001-01-01T00:00:00) opw-3976301 Forward-Port-Of: odoo/enterprise#64439
Create a Vendor Bill with a 0% purchase tax Check Reporting > EC Sales List Issue: Bill is reported This occurs because the system does not filter the tax type opw-3928085 Forward-Port-Of: odoo/enterprise#64574 Forward-Port-Of: odoo/enterprise#63206
Original PR description
Create a Vendor Bill with a 0% purchase tax Check Reporting > EC Sales List Issue: Bill is reported This occurs because the system does not filter the tax type opw-3928085 Forward-Port-Of: odoo/enterprise#64574 Forward-Port-Of: odoo/enterprise#63206
Problem --- On the order status page, the terms translations are ignored. This happens because it is a 'website=True' routed page, and modules which create website pages with translations need to let the http routing know about them by overloading `_get_translations_modules_name` Note: the page will typically be translated into the browser's preferred language and not the odoo user's. opw-3949394 Forward-Port-Of: odoo/enterprise#63915
Original PR description
Problem --- On the order status page, the terms translations are ignored. This happens because it is a 'website=True' routed page, and modules which create website pages with translations need to let the http routing know about them by overloading `_get_translations_modules_name` Note: the page will typically be translated into the browser's preferred language and not the odoo user's. opw-3949394 Forward-Port-Of: odoo/enterprise#63915
Purpose ======= Fix the appointment type intro message which, if not set yet, wasn't available for edition using the website editor. Specification ============= The "o_appointment_intro" element has been changed from inside, to next to the "o_appointment" element. Changing the selector to match the new "o_appointment_intro" position. Ref commit: https://github.com/odoo/enterprise/commit/4f68079b535c1ea54c42ae8dabae903f88d6e87f Also combining the 2 separate conditions that adds the
Original PR description
Purpose ======= Fix the appointment type intro message which, if not set yet, wasn't available for edition using the website editor. Specification ============= The "o_appointment_intro" element has been changed from inside, to next to the "o_appointment" element. Changing the selector to match the new "o_appointment_intro" position. Ref commit: https://github.com/odoo/enterprise/commit/4f68079b535c1ea54c42ae8dabae903f88d6e87f Also combining the 2 separate conditions that adds the d-none class into 1 single OR-ed condition for readability. Task-3976356 Forward-Port-Of: odoo/enterprise#64447 Forward-Port-Of: odoo/enterprise#64016
Currently, the `employee_cost` of a `mrp.workcenter.productivity` is recomputed each time we try to access its `total_cost`. This means that if you change the cost of the employee related to it some time after a MO was completed, if you end up accessing the `total_cost` field (like by opening the Overview), it will overwrite the previous `employee_cost`, and will alter the Cost Analysis report as well. Forward-Port-Of: odoo/enterprise#64481 Forward-Port-Of: odoo/enterprise#45609
Original PR description
Currently, the `employee_cost` of a `mrp.workcenter.productivity` is recomputed each time we try to access its `total_cost`. This means that if you change the cost of the employee related to it some time after a MO was completed, if you end up accessing the `total_cost` field (like by opening the Overview), it will overwrite the previous `employee_cost`, and will alter the Cost Analysis report as well. Forward-Port-Of: odoo/enterprise#64481 Forward-Port-Of: odoo/enterprise#45609
When a new bike is selected, it raises a traceback when trying to create the bike, because the state_new_request is not assigned if there is no new car. Introduced in: https://github.com/odoo/enterprise/pull/63020 Forward-Port-Of: odoo/enterprise#64585
Original PR description
When a new bike is selected, it raises a traceback when trying to create the bike, because the state_new_request is not assigned if there is no new car. Introduced in: https://github.com/odoo/enterprise/pull/63020 Forward-Port-Of: odoo/enterprise#64585
### Steps to reproduce the issue: 1. Go to _Settings > Technical > Email > Email Templates_ 2. Select a template that applies to a Contact 3. Add a mail address in the Cc field 4. Go to _Accounting > Customers > Follow-up Reports_ select one of the reports 5. Click on "Follow up" 6. Select the template with the Cc in the Content Template field 7. The Cc address is not added to the Email Recipients field 8. Click on Send Message in the chatter 9. Open the full view and add the template
Original PR description
### Steps to reproduce the issue: 1. Go to _Settings > Technical > Email > Email Templates_ 2. Select a template that applies to a Contact 3. Add a mail address in the Cc field 4. Go to _Accounting >…
### Steps to reproduce the issue: 1. Go to _Settings > Technical > Email > Email Templates_ 2. Select a template that applies to a Contact 3. Add a mail address in the Cc field 4. Go to _Accounting > Customers > Follow-up Reports_ select one of the reports 5. Click on "Follow up" 6. Select the template with the Cc in the Content Template field 7. The Cc address is not added to the Email Recipients field 8. Click on Send Message in the chatter 9. Open the full view and add the template with the Cc in the Load template field 10. The Cc address is added to the Recipients field ### Explanation: The field `email_recipient_ids` is not a computed field. Because of it, there is no change called when `template_id` is assigned a new value. ### Suggested fix: We need to change `email_recipients_ids` according to `template_id` while keeping its current properties (stored, writable). The method is adapted from `mail.compose.message._compute_partner_ids`. https://github.com/odoo/odoo/blob/1849b709f1acf0f5546582bf7551129a870e3113/addons/mail/wizard/mail_compose_message.py#L482-L496 opw-3878125 Forward-Port-Of: odoo/enterprise#64397 Forward-Port-Of: odoo/enterprise#61861
A traceback occurs when this specific call to `getReceiptHeaderData` is made without order. ``` Error: TypeError: Cannot read properties of undefined (reading 'l10n_cl_sii_regional_office') ``` To reproduce the error: - With a CL company setup - Open POS session - Click Cash In/Out - Select an amount - Confirm Ticket [link](https://www.odoo.com/web#model=project.task&id=3917776) opw-3917776 Forward-Port-Of: odoo/enterprise#62985
Original PR description
A traceback occurs when this specific call to `getReceiptHeaderData` is made without order. ``` Error: TypeError: Cannot read properties of undefined (reading 'l10n_cl_sii_regional_office') ``` To reproduce the error: - With a CL company setup - Open POS session - Click Cash In/Out - Select an amount - Confirm Ticket [link](https://www.odoo.com/web#model=project.task&id=3917776) opw-3917776 Forward-Port-Of: odoo/enterprise#62985
With an MX company setup Create a product with: - UNSPSC Category: 12352106 Ácidos orgánicos o sus sustitutos - Hazardous Material Designation Code (MX): - Hazardous Packaging (MX): - Tariff Fraction: 2917190800 Ácido fumárico. - UMT Aduana: kg - Weight: 1.00 Create a Sale Order with the product Confirm Go to Delivery Set: - Tansport Type: Federal Highways - In MX Tab add 'Vehicle Setup' and 'Gross Vehicle Weight' Validate and Generate Delivery Guide Error: Code : CP155 Mes
Original PR description
With an MX company setup Create a product with: - UNSPSC Category: 12352106 Ácidos orgánicos o sus sustitutos - Hazardous Material Designation Code (MX): - Hazardous Packaging (MX): - Tariff…
With an MX company setup Create a product with: - UNSPSC Category: 12352106 Ácidos orgánicos o sus sustitutos - Hazardous Material Designation Code (MX): - Hazardous Packaging (MX): - Tariff Fraction: 2917190800 Ácido fumárico. - UMT Aduana: kg - Weight: 1.00 Create a Sale Order with the product Confirm Go to Delivery Set: - Tansport Type: Federal Highways - In MX Tab add 'Vehicle Setup' and 'Gross Vehicle Weight' Validate and Generate Delivery Guide Error: Code : CP155 Message : El valor registrado en el atributo "Mercancia:MaterialPeligroso" no es válido o el valor registrado en el atributo “Mercancias:Mercancia:BienesTransp” contiene el valor "0" (cero) en la columna "Material peligroso" del catálogo catCartaPorte:c_ClaveProdServCP. This occurs because the MarierialPeligroso element is not filled In the ClaveProdServ tab of the CatalogoCartaPorte30 it is specified if a product or service is (1), not is (0) or may be (0,1) considered hazardous When having to deal with "may be" hazardous products it is required to set the 'MaterialPeligroso' element. Currently, the system does not allow to specify if the "may be" product is actually hazardous, but if the 'Hazardous Material Designation Code (MX)' field is not set the MaterialPeligroso element will not be filled, failing the validation The proposed workaround is to use the value '0' as flag to indicate that the maybe hazardous product should not be considered hazardous and 'MaterialPeligroso' will be set to 'No' opw-3955361 task-3668225 Forward-Port-Of: odoo/enterprise#64284 Forward-Port-Of: odoo/enterprise#63832
Forward-Port-Of: odoo/enterprise#64040
Original PR description
Forward-Port-Of: odoo/enterprise#64040
Steps to reproduce: - Install Accounting and l10n_co_edi - Switch to a Colombian company - Configure the Colombian localization (https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/colombia.html) - Create a vendor bill containing a section or a note - Confirm the bill - Process the bill by E-invoicing service : UBL 2.1 (Colombia) Issue: The generated electronic document is rejected by the E-invoicing service because the input number of lines is also counti
Original PR description
Steps to reproduce: - Install Accounting and l10n_co_edi - Switch to a Colombian company - Configure the Colombian localization (https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/colombia.html) - Create a vendor bill containing a section or a note - Confirm the bill - Process the bill by E-invoicing service : UBL 2.1 (Colombia) Issue: The generated electronic document is rejected by the E-invoicing service because the input number of lines is also counting section and note lines. Solution: Exclude section and note lines from the count as it is done for invoice. opw-3928949 Forward-Port-Of: odoo/enterprise#63588
The 'Totales' section is computed by aggregating amounts then rounding. The 'ImpuestosP' section is computed by making the sum of rounded values. So when the payment is expressed in MXN but not the invoices, we could have a rounding issue here. Forward-Port-Of: odoo/enterprise#64411 Forward-Port-Of: odoo/enterprise#64013
Original PR description
The 'Totales' section is computed by aggregating amounts then rounding. The 'ImpuestosP' section is computed by making the sum of rounded values. So when the payment is expressed in MXN but not the invoices, we could have a rounding issue here. Forward-Port-Of: odoo/enterprise#64411 Forward-Port-Of: odoo/enterprise#64013
Problem: When a portal user views a Task they are connected to, if `planned_date_begin` is set (using a date range on the Task rather that just `date_deadline`), 'Planned Date' will appear twice on Portal View. Purpose: We already have 'Planned Date'/'Deadline' shown with `project_enterprise.portal_my_task`, and this edited view comes from `industry_fsm`, which depends on `project_enterprise` anyways. Removing from `industry_fsm` lets the parent module take care of these fields. Steps to R
Original PR description
Problem: When a portal user views a Task they are connected to, if `planned_date_begin` is set (using a date range on the Task rather that just `date_deadline`), 'Planned Date' will appear twice on Portal View. Purpose: We already have 'Planned Date'/'Deadline' shown with `project_enterprise.portal_my_task`, and this edited view comes from `industry_fsm`, which depends on `project_enterprise` anyways. Removing from `industry_fsm` lets the parent module take care of these fields. Steps to Reproduce: 1. Create a SO with Service Product that creates Project/Task, assign portal user as Customer 2. Share Read-only with Portal user from Project 3. On Task, set Deadline start and end. 4. Login as portal User, navigate Projects -> SO -> Task 5. See duplicated 'Planned Date' line opw-3978845 Forward-Port-Of: odoo/enterprise#64306
When selecting the option "IoT-connected display" for customer display, and pos_iot is installed, there is no way from the res.config.settings form to specify the `proxy_ip` field which is used to send the customer display information. Because of this, using IoT-connected display for customer screen doesn't work. This commit introduces a way to infer the proxy_ip from the specify display device. Related: https://github.com/odoo/odoo/pull/168897 Forward-Port-Of: odoo/enterprise#64360
Original PR description
When selecting the option "IoT-connected display" for customer display, and pos_iot is installed, there is no way from the res.config.settings form to specify the `proxy_ip` field which is used to send the customer display information. Because of this, using IoT-connected display for customer screen doesn't work. This commit introduces a way to infer the proxy_ip from the specify display device. Related: https://github.com/odoo/odoo/pull/168897 Forward-Port-Of: odoo/enterprise#64360