Daily updates from Odoo
Friday, June 28, 2024
25 changes · master
Resolved issues and error corrections
This change restores a previous styling setting in the Enterprise web interface to avoid unnecessary warning messages during asset compilation. It does not change business functionality, but helps keep development and deployment logs cleaner.
Original PR description
This reverts commit odoo/enterprise@34a846cae4382b9507407e9f4abd509a02ce4331. Setting the box-shadow to none will trigger a WARNING in the compiler due to how bootstrap handle the box-shadow mixin[1] when receiving two arguments with one containing a 'none' We are setting the value back to 0 which will provide an invalid property too when the mixin is called with a single argument but won't warn in the console. [1]: https://github.com/twbs/bootstrap/pull/30394 follow up of task-3755095
Code cleanup and technical improvements
This update streamlines how contact-like user information is prepared and sent to the browser across messaging-related features. It should reduce repeated data transfer and client-side processing, improving efficiency without changing expected user workflows.
Original PR description
This will reduce data transferred to the client and processed in JS when the same persona was appearing multiple times in various places. This also makes more clear what is transferred by avoiding nested values. This is part 4, focusing on persona in general. Unfortunately `mail_partner_format` itself is not yet converted to store in this PR because `_message_format` needs to be done first, and that will be its own PR (this is the next step). Formatting code eventually becomes simpler too, by always adding data to the store rather than updating pre-existing dict manually. Part of task-3605717 https://github.com/odoo/odoo/pull/170709
The Knowledge actions menu was reorganized internally to reduce the need for custom changes across different screen types. This should make the feature easier to maintain and less likely to break as the product evolves, with little visible change for users.
Original PR description
We refactor the menu "knowledge" of the menu "Actions" so that we do no longer need to patch many renderers.
Miscellaneous changes
This commit allows the user the password provided by IAP during the first connection. A new wizard has been added for this. task-id: 3857241 IAP: https://github.com/odoo/iap-apps/pull/790 Forward-Port-Of: odoo/enterprise#65625 Forward-Port-Of: odoo/enterprise#60645
Original PR description
This commit allows the user the password provided by IAP during the first connection. A new wizard has been added for this. task-id: 3857241 IAP: https://github.com/odoo/iap-apps/pull/790 Forward-Port-Of: odoo/enterprise#65625 Forward-Port-Of: odoo/enterprise#60645
…nents - In the Inventory app, go to Lots/Serial Numbers; - Open any record; - Click on the Traceability stat button; - reload the page; Before this commit, the message "No operation made on this lot." was shown, even if there are operations. This occurs because the TraceabilityReport lost the current model at reload (active_model). Since [1] a new prop (a function called updateResId) was give to the controllers components of the window actions to update the resId on the action s
Original PR description
…nents - In the Inventory app, go to Lots/Serial Numbers; - Open any record; - Click on the Traceability stat button; - reload the page; Before this commit, the message "No operation made on this…
…nents - In the Inventory app, go to Lots/Serial Numbers; - Open any record; - Click on the Traceability stat button; - reload the page; Before this commit, the message "No operation made on this lot." was shown, even if there are operations. This occurs because the TraceabilityReport lost the current model at reload (active_model). Since [1] a new prop (a function called updateResId) was give to the controllers components of the window actions to update the resId on the action state and url, when needed. For instance, the form view after saving a new record, will update the state and the url with the newly created id. Since [2], the prop was also given to the controllers components of the client actions to update the resId. There is a need to update more than the resId. This PR will introduce a new prop with the aim to update the action state (updateActionState). This props will allow the controller components to update the state and push the new state to the router (updating the url). In practical, this allows to push a new state in the url, keeping the action service in sync. This synchronization between the router and the action service allows the browser back/forward/reload to work as expected. Now, the TraceabilityReport can update the state, to add the active_model to the url (as a query param), and be able to restore the full state at reload. [1]: https://github.com/odoo/odoo/commit/c63d14a0485a553b74a8457aee158384e9ae6d3f [2]: https://github.com/odoo/odoo/commit/3ad4fd65387f60b524e5f786556963ead8ae9dfe Forward-Port-Of: odoo/enterprise#65681 Forward-Port-Of: odoo/enterprise#65284
Steps to reproduce: - Install "Subscriptions" - Go to "Configuration" -> "Alerts" - Create a new alert: - Add a name for the alert - Action: Create next activty - Trigger On: Modification - Activtiy: To Do - Add a summary - Add a note - Due Date In: 1 - Due Date type: Put it blank Issues: When triggered the action will result in a traceback due to `activity_date_deadline_range_type`. https://github.com/odoo/odoo/blob/9a62d0c82cdc47718181aed36cad763499b4a51d/addo
Original PR description
Steps to reproduce: - Install "Subscriptions" - Go to "Configuration" -> "Alerts" - Create a new alert: - Add a name for the alert - Action: Create next activty - Trigger On: Modification - Activtiy: To Do - Add a summary - Add a note - Due Date In: 1 - Due Date type: Put it blank Issues: When triggered the action will result in a traceback due to `activity_date_deadline_range_type`. https://github.com/odoo/odoo/blob/9a62d0c82cdc47718181aed36cad763499b4a51d/addons/mail/models/ir_actions_server.py#L123-L124 [Linked PR](https://github.com/odoo/odoo/pull/168043) opw-3946293 Forward-Port-Of: odoo/enterprise#65565 Forward-Port-Of: odoo/enterprise#63816
Currently, an error occurs while editing the customer form view when the '281.50' contact tag is not available Step to produce: - Install the 'l10n_be_reports' module. - Go to the list view of 'Contact Tags' and delete the '281.50' record. - Open the customer form view and try to edit it. Stack Trace : ``` KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7fb69b00be20>, 'l10n_be_reports.res_partner_tag_281_50') File "odoo/tools/cache.py", line 103, in lookup
Original PR description
Currently, an error occurs while editing the customer form view when the '281.50' contact tag is not available Step to produce: - Install the 'l10n_be_reports' module. - Go to the list view of…
Currently, an error occurs while editing the customer form view when the '281.50' contact tag is not available
Step to produce:
- Install the 'l10n_be_reports' module.
- Go to the list view of 'Contact Tags' and delete the '281.50' record.
- Open the customer form view and try to edit it.
Stack Trace :
```
KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7fb69b00be20>, 'l10n_be_reports.res_partner_tag_281_50')
File "odoo/tools/cache.py", line 103, in lookup
r = d[key]
File "<decorator-gen-5>", line 2, in __getitem__
File "odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "odoo/tools/lru.py", line 34, in __getitem__
a = self.d[obj]
ValueError: External ID not found in the system: l10n_be_reports.res_partner_tag_281_50
File "odoo/http.py", line 2250, in __call__
response = request._serve_nodb()
File "odoo/http.py", line 1759, in _serve_nodb
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2055, in dispatch
result = endpoint(**self.request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/custom/default/saas_worker/controllers/main.py", line 2305, in smtp
proxy.message_process(None, message)
File "addons/mail/models/mail_thread.py", line 1369, in message_process
routes = self.message_route(message, msg_dict, model, thread_id, custom_values)
File "home/odoo/src/custom/trial/saas_trial/models/mail.py", line 369, in message_route
return super(MailThread, self).message_route(message, message_dict, model=model, thread_id=thread_id,
File "addons/mail/models/mail_thread.py", line 1093, in message_route
self._routing_handle_bounce(message, message_dict)
File "addons/mail/models/mail_thread.py", line 754, in _routing_handle_bounce
rec_bounce_w_email._message_receive_bounce(bounced_email, bounced_partner)
File "addons/mail/models/mail_thread_blacklist.py", line 104, in _message_receive_bounce
record.message_bounce = record.message_bounce + 1
File "odoo/fields.py", line 1376, in __set__
records.write({self.name: write_value})
File "home/odoo/src/enterprise/saas-17.2/l10n_be_reports/models/res_partner.py", line 26, in write
tag_281_50 = self.env.ref('l10n_be_reports.res_partner_tag_281_50')
File "odoo/api.py", line 584, in ref
res_model, res_id = self['ir.model.data']._xmlid_to_res_model_res_id(
File "odoo/addons/base/models/ir_model.py", line 2185, in _xmlid_to_res_model_res_id
return self._xmlid_lookup(xmlid)
File "<decorator-gen-43>", line 2, in _xmlid_lookup
File "odoo/tools/cache.py", line 110, in lookup
value = d[key] = self.method(*args, **kwargs)
File "odoo/addons/base/models/ir_model.py", line 2178, in _xmlid_lookup
raise ValueError('External ID not found in the system: %s' % xmlid)
```
An error occurs when the system tries to retrieve an external ID of the contact
tag '281.50'at [1], but it is not available.
link [1]: https://github.com/odoo/enterprise/blob/77c76fecda9b63e2fc17431a4cd3623650f93724/l10n_be_reports/models/res_partner.py#L26
To handle this issue, add 'raise_if_not_found=False' if the contact tag '281.50' is
not available.
sentry-5499490971
Forward-Port-Of: odoo/enterprise#64878Impacted versions: - 17.0 Steps to reproduce: 1. Install l10n_mx_edi module. 2. Go to Company ESCUELA KEMPER URGATE. 3. Go to Settings / Automatic Currency Rates. 4. Run manually the currency rates. 5. Go to Accounting / Customers / Invoices. 6. Create a new invoice with the next values: - Customer: "INMOBILIARIA CVA" - Currency: USD - Product: Any but set the UNSPSC Category (any) 7. Confirm the invoice. 8. Click send and print. 9. Check CFDI and click on Clic
Original PR description
Impacted versions: - 17.0 Steps to reproduce: 1. Install l10n_mx_edi module. 2. Go to Company ESCUELA KEMPER URGATE. 3. Go to Settings / Automatic Currency Rates. 4. Run manually the currency rates.…
Impacted versions:
- 17.0
Steps to reproduce:
1. Install l10n_mx_edi module.
2. Go to Company ESCUELA KEMPER URGATE.
3. Go to Settings / Automatic Currency Rates.
4. Run manually the currency rates.
5. Go to Accounting / Customers / Invoices.
6. Create a new invoice with the next values:
- Customer: "INMOBILIARIA CVA"
- Currency: USD - Product: Any but set the UNSPSC Category (any)
7. Confirm the invoice.
8. Click send and print.
9. Check CFDI and click on Click send and print.
10. Open the generated xml
Current behavior:
- TipoCambio have many variations depending of product and currency value:
Example: June 17th: have:
| Product | Quantity | TipoCambio |
|---------------------------|----------|------------|
| [FURN_0006] Monitor Stand | 1 | 18.538484 |
| [FURN_0004] Letter Tray | 1 | 18.538558 |
| [E-COM09] Large Desk | 1 | 18.538498 |
Expected behavior:
- TipoCambio (inside XML) should have the exchange value of the currency (invoiced). Example: June 17th should have 18.5385 (USD)
Inspired in: [l10n_mx_extended](https://github.com/odoo/enterprise/blame/f030d17e07ae7b10fe95e054eb27ba35101cfc96/l10n_mx_edi_extended/models/account_move.py#L178)
Forward-Port-Of: odoo/enterprise#64838Added the balance sheet and profit loss statements to Tanzania localization package. task-3783153 Forward-Port-Of: odoo/enterprise#58148
Original PR description
Added the balance sheet and profit loss statements to Tanzania localization package. task-3783153 Forward-Port-Of: odoo/enterprise#58148
With an MX company Enable QR on POS ticket receipt Open POS session Make 2 orders without customer or invoice (save qr of a receipt) Close POS Session Go to Orders, select the 2 orders Click Actions > Create Global Invoice (After a few days) Open QR link and validate invoice Issue: Credit note CFDI validation will fail In this flow the system first issue a global invoice, then when a customer ask the invoice a credit note for the global invoice needs to be generated with the new invoi
Original PR description
With an MX company Enable QR on POS ticket receipt Open POS session Make 2 orders without customer or invoice (save qr of a receipt) Close POS Session Go to Orders, select the 2 orders Click Actions > Create Global Invoice (After a few days) Open QR link and validate invoice Issue: Credit note CFDI validation will fail In this flow the system first issue a global invoice, then when a customer ask the invoice a credit note for the global invoice needs to be generated with the new invoice. Currently the system uses the original pos order date as credit note date and this will fail validation if the order has been created before 72 hours ago Forward-Port-Of: odoo/enterprise#65451
Methods from l10n_cl_edi are being moved to l10n_cl as part of https://github.com/odoo/odoo/pull/133695. This includes _l10n_cl_get_amounts and _float_repr_float_round on the account move model, as well as the method _l10n_cl_get_line_amounts on the account move line model. They can therefore be removed in this commit. The VAT section for the electronic ticket document is also being transferred in the same manner, and can thus be removed in the template here. This will allow to show the PD
Original PR description
Methods from l10n_cl_edi are being moved to l10n_cl as part of https://github.com/odoo/odoo/pull/133695. This includes _l10n_cl_get_amounts and _float_repr_float_round on the account move model, as well as the method _l10n_cl_get_line_amounts on the account move line model. They can therefore be removed in this commit. The VAT section for the electronic ticket document is also being transferred in the same manner, and can thus be removed in the template here. This will allow to show the PDFs of invoices generated in other currency in a correct way. X-original-commit: 135a9bee298fe77217548d2fe86ae2558878e5b7 (cherry picked from commit 6ac7ebd00f0e63d4927e05f85ee45b96c7def4e3) Forward-Port-Of: odoo/enterprise#65346 Forward-Port-Of: odoo/enterprise#60890
When you open the Trial Balance with the module installed, it procs a traceback. Also fixed the issue that clicking on the button does nothing. Adapted the override to the new Date filters. We now don't remove the other selector when clicking on Month 13 task-3983699 Forward-Port-Of: odoo/enterprise#64790
Original PR description
When you open the Trial Balance with the module installed, it procs a traceback. Also fixed the issue that clicking on the button does nothing. Adapted the override to the new Date filters. We now don't remove the other selector when clicking on Month 13 task-3983699 Forward-Port-Of: odoo/enterprise#64790
An error occurs when the system tries to access single values from multiple records at [1]. Traceback On Sentry: ``` ValueError: too many values to unpack (expected 1) File "odoo/models.py", line 5851, in ensure_one _id, = self._ids ValueError: Expected singleton: iot.device(1, 2, 3, 4, 5, 6, 7, 8) File "odoo/http.py", line 2248, in __call__ response = request._serve_db() File "odoo/http.py", line 1823, in _serve_db return self._transactioning(_serve_ir_http, read
Original PR description
An error occurs when the system tries to access single values from multiple records at [1]. Traceback On Sentry: ``` ValueError: too many values to unpack (expected 1) File "odoo/models.py", line…
An error occurs when the system tries to access single values from multiple records at [1].
Traceback On Sentry:
```
ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5851, in ensure_one
_id, = self._ids
ValueError: Expected singleton: iot.device(1, 2, 3, 4, 5, 6, 7, 8)
File "odoo/http.py", line 2248, in __call__
response = request._serve_db()
File "odoo/http.py", line 1823, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1843, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1821, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1828, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2053, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/web/models/models.py", line 76, in web_save
return self.with_context(bin_size=True).web_read(specification)
File "addons/web/models/models.py", line 164, in web_read
for vals in co_records.web_read(field_spec['fields'])
File "addons/web/models/models.py", line 87, in web_read
values_list: list[dict] = self.read(fields_to_read, load=None)
File "odoo/models.py", line 3610, in read
return self._read_format(fnames=fields, load=load)
File "odoo/models.py", line 3821, in _read_format
vals[name] = convert(record[name], record, use_display_name)
File "odoo/models.py", line 6608, in __getitem__
return self._fields[key].__get__(self, self.env.registry[self._name])
File "odoo/fields.py", line 1261, in __get__
self.compute_value(recs)
File "odoo/fields.py", line 1443, in compute_value
records._compute_field_value(self)
File "odoo/models.py", line 4934, in _compute_field_value
fields.determine(field.compute, self)
File "odoo/fields.py", line 100, in determine
return needle(*args)
File "home/odoo/src/enterprise/saas-17.2/quality_iot/models/iot.py", line 16, in _compute_qcp_test_type
self.qcp_test_type = types.get(self.type, '')
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5854, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
To handle this issue, Implement an iteration to iterate records.
sentry-5540606405
Forward-Port-Of: odoo/enterprise#65604Forward-Port-Of: odoo/enterprise#65639 Forward-Port-Of: odoo/enterprise#65585
Original PR description
Forward-Port-Of: odoo/enterprise#65639 Forward-Port-Of: odoo/enterprise#65585
The data from the moves in foreign currency are wrongly exported in sales tax report Steps: - Install l10n_th_reports and select th company - Make an invoice in foreign currency - Go to tax report and click on Sales Tax Report button -> In the xlsx file: `Total Amount` and `Vat Amount` are displayed in move currency with the company currency sign while the `Total Excluding VAT Amount` is displayed in company currency With this commit, we display all the values in company cur
Original PR description
The data from the moves in foreign currency are wrongly exported in sales tax report Steps: - Install l10n_th_reports and select th company - Make an invoice in foreign currency - Go to tax report and click on Sales Tax Report button -> In the xlsx file: `Total Amount` and `Vat Amount` are displayed in move currency with the company currency sign while the `Total Excluding VAT Amount` is displayed in company currency With this commit, we display all the values in company currency. Note: The fix in 16.0 requires that we convert the value from `tax['tax_group_amount']` while in 17.0 we should use the new `tax['tax_group_amount_company_currency']` opw-3959408 Forward-Port-Of: odoo/enterprise#65300
The test `test_01_preparation_display_resto` was using the food category of test data by searching after it with ``` self.env['pos.category'].search([('name', '=', 'Food')]).id ``` Bu this category is not always present in the test data. This commit changes the test by create a new category called Food directly when creating a new preparation display. RB error: 67596 Forward-Port-Of: odoo/enterprise#65631
Original PR description
The test `test_01_preparation_display_resto` was using the food category of test data by searching after it with
```
self.env['pos.category'].search([('name', '=', 'Food')]).id
```
Bu this category is not always present in the test data.
This commit changes the test by create a new category called Food directly when creating a new preparation display.
RB error: 67596
Forward-Port-Of: odoo/enterprise#65631Steps: - import a winbooks with data 1: DOCORDER != VAT and journal not in ('asset_receivable', 'liability_payable') 2: without "AMOUNTEUR" Actual result: - 1 KeyError traceback for "display_type" - 2 TypeError: unsupported operand type(s) for *: 'NoneType' and 'int' Expected result - No KeyError, default value is "product" (cf compute) https://github.com/odoo/odoo/blob/9389095d160a03117f815dacebf591d842c81d1d/addons/account/models/account_move_line.py#L433 - AMOUNTEUR is 0 f
Original PR description
Steps:
- import a winbooks with data
1: DOCORDER != VAT and journal not in ('asset_receivable', 'liability_payable')
2: without "AMOUNTEUR"
Actual result:
- 1 KeyError traceback for "display_type"
- 2 TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
Expected result
- No KeyError, default value is "product" (cf compute)
https://github.com/odoo/odoo/blob/9389095d160a03117f815dacebf591d842c81d1d/addons/account/models/account_move_line.py#L433
- AMOUNTEUR is 0 for calculation if not there
Caused by:
1 https://github.com/odoo/enterprise/commit/b9d4ce816fb926b6c0e7a71cd572c8a1c4134155 2 https://github.com/odoo/enterprise/commit/198ecca82cf61b14f42686e8b051568bda034ce9
opw-3996117
Forward-Port-Of: odoo/enterprise#65159Steps to reproduce: - Create a preparation display - Create orders to appear in it - Create a new preparation display Behavior: - Past orders before the creation of the preparation display still appear. Intended behaviour: - New preparation display needs to be empty. Reference: opw-4008808 Forward-Port-Of: odoo/enterprise#65368
Original PR description
Steps to reproduce: - Create a preparation display - Create orders to appear in it - Create a new preparation display Behavior: - Past orders before the creation of the preparation display still appear. Intended behaviour: - New preparation display needs to be empty. Reference: opw-4008808 Forward-Port-Of: odoo/enterprise#65368
Issue --> With a large number of `account.move.line` and `pos.order.line` records, methods `_get_tax_details`, `_get_gstr1_hsn_json` and `_set_details_pos_lines` do not perform well. Solution --> In `_get_tax_details` --> Replace the journal items recordset with a set of ids to do deletions. Move the fetch to when it is actually needed. In `_get_gstr_hsn_json` --> Prefetch the l10n_in_code values on `uom.uom` records that are used in the for loop. This optimization prevents add
Original PR description
Issue --> With a large number of `account.move.line` and `pos.order.line` records, methods `_get_tax_details`, `_get_gstr1_hsn_json` and `_set_details_pos_lines` do not perform well. Solution --> In…
Issue --> With a large number of `account.move.line` and `pos.order.line` records, methods `_get_tax_details`, `_get_gstr1_hsn_json` and `_set_details_pos_lines` do not perform well. Solution --> In `_get_tax_details` --> Replace the journal items recordset with a set of ids to do deletions. Move the fetch to when it is actually needed. In `_get_gstr_hsn_json` --> Prefetch the l10n_in_code values on `uom.uom` records that are used in the for loop. This optimization prevents additional hits to the backend. In `_set_details_pos_lines` --> Fetch `product.product` records and all the `uom.uom` records before the for loop to prevent additional hits to the backend when trying to fetch `product_id.type`, `product_id.l10n_in_hsn_code` and `product_uom_id.l10n_in_code` Benchmark --> For about 110k journal items and 95k pos order lines, the current implementation takes about 2800 seconds to finish computation. After the fix, the process takes about 300 seconds to finish. opw-3895401 Forward-Port-Of: odoo/enterprise#65578 Forward-Port-Of: odoo/enterprise#62305
When making comparison in trial balance report, the values are inverted in relation to the header. Steps: - Create and confirm a move X for today and 1000$ - Create and confirm a move Y for today - 1 month and 2000$ - Go to trial balance, select `This month` and one previous period comparison in the options -> Under actual month column, we have the previous month value and vice versa Reason: In trial Balance we want the period order to be `ascending` by default, this is why we were inve
Original PR description
When making comparison in trial balance report, the values are inverted in relation to the header. Steps: - Create and confirm a move X for today and 1000$ - Create and confirm a move Y for today - 1 month and 2000$ - Go to trial balance, select `This month` and one previous period comparison in the options -> Under actual month column, we have the previous month value and vice versa Reason: In trial Balance we want the period order to be `ascending` by default, this is why we were inverted the column for this report. However, since 70665c2f40dae9c2823fac520d821e25f4fabb80, the order period is dynamically set by the `period_order` option in the comparison filter, and set by default to `ascending`, therefore there is no need to force the inversion of the columns. opw-3907491 Forward-Port-Of: odoo/enterprise#63630
Steps to reproduce: ------------------- With a user which has no access rights for 'Employees' and 'Contracts' and with admin rights for 'Planning', tries to add a new recurring shift (via the Planning module). Issue: ------ We get an access error. Cause: ------ We're trying to access the `contract_ids` field even though we don't have access rights. Solution: --------- Fetch the value of the `date_end` field in sudo so that this flow is not blocked for a planning user. opw-39
Original PR description
Steps to reproduce: ------------------- With a user which has no access rights for 'Employees' and 'Contracts' and with admin rights for 'Planning', tries to add a new recurring shift (via the Planning module). Issue: ------ We get an access error. Cause: ------ We're trying to access the `contract_ids` field even though we don't have access rights. Solution: --------- Fetch the value of the `date_end` field in sudo so that this flow is not blocked for a planning user. opw-3992135 Forward-Port-Of: odoo/enterprise#65486 Forward-Port-Of: odoo/enterprise#64845
Currently, if there is a connection error while retrieving the CDR, we clear the ticket number. This will cause the user to send a duplicate delivery guide if he clicks on 'Retry', which is not what we want. Instead, we should keep the ticket number in all error cases except explicit rejection from SUNAT, so that a retry will try to retrieve the CDR again using the existing ticket number. [link to API docs](https://cpe.sunat.gob.pe/sites/default/files/inline-files/ServicioREST_GRE-SEECont_
Original PR description
Currently, if there is a connection error while retrieving the CDR, we clear the ticket number. This will cause the user to send a duplicate delivery guide if he clicks on 'Retry', which is not what we want. Instead, we should keep the ticket number in all error cases except explicit rejection from SUNAT, so that a retry will try to retrieve the CDR again using the existing ticket number. [link to API docs](https://cpe.sunat.gob.pe/sites/default/files/inline-files/ServicioREST_GRE-SEECont_v1.2_0.xlsx) opw-3757843 Forward-Port-Of: odoo/enterprise#65580 Forward-Port-Of: odoo/enterprise#65352
**Current behavior:** A product that is tracked via serial will have all of its lots displayed in the Schedule gantt view instead of just the ones which are part of the order. **Expected behavior:** Only the lots corresponding to rented quants of a product will be displayed. **Steps to reproduce:** 1. Enable `Rental Transfers` in settings 2. Create a rental order with 1 of the demo printer products (they are tracked via SN already) and confirm 3. Open the rental schedule view, see
Original PR description
**Current behavior:** A product that is tracked via serial will have all of its lots displayed in the Schedule gantt view instead of just the ones which are part of the order. **Expected behavior:**…
**Current behavior:** A product that is tracked via serial will have all of its lots displayed in the Schedule gantt view instead of just the ones which are part of the order. **Expected behavior:** Only the lots corresponding to rented quants of a product will be displayed. **Steps to reproduce:** 1. Enable `Rental Transfers` in settings 2. Create a rental order with 1 of the demo printer products (they are tracked via SN already) and confirm 3. Open the rental schedule view, see that for the new order, all of the printers in stock with a SN are displayed **Cause of the issue:** Previously, the commit 8c90c7493ec was merged to fix an issue where you could not group by serial numbers in the schedule view for orders that were created while the 'Rental Transfers' setting was enabled. This introducted this bug by not actually specifying which `lot_id`s of a product were part of an order- so it selected ALL `lot_id`s of ANY product in a rental order. **Fix:** Add a join on `StockMove` so we can select `lot_id`s which are exclusively in `StockMoveLine`s that are linked to `StockMoves` which correspond to a rental order. opw-3977685 Forward-Port-Of: odoo/enterprise#64662 Forward-Port-Of: odoo/enterprise#64118
**Steps to reproduce:** - Install account_reports - Go to "Accounting / Accounting / Journals / Journal Entries" - Create a new entry: * Accounting Date: [a date from last month] * Journal Items: [2 lines using accounts that are not of type "asset_cash" or "liability_credit_card"] - Post the entry - Create a journal: * Type: Miscellaneous * Default Account: [one of the accounts used for the created entry] - Go to "Accounting / Reporting / Statement Reports / Cash Flow Statement
Original PR description
**Steps to reproduce:** - Install account_reports - Go to "Accounting / Accounting / Journals / Journal Entries" - Create a new entry: * Accounting Date: [a date from last month] * Journal Items: [2…
**Steps to reproduce:** - Install account_reports - Go to "Accounting / Accounting / Journals / Journal Entries" - Create a new entry: * Accounting Date: [a date from last month] * Journal Items: [2 lines using accounts that are not of type "asset_cash" or "liability_credit_card"] - Post the entry - Create a journal: * Type: Miscellaneous * Default Account: [one of the accounts used for the created entry] - Go to "Accounting / Reporting / Statement Reports / Cash Flow Statement" **Issue:** The default account from the newly created misc journal appears in the report even if it is not a bank-type (or cash-type) account. **Cause:** Previously, only account moves from a bank or a cash journal were taken into account in the report. The default account of these journals is forced to "asset_cash" type. However, a fix has been made to allow some account moves from miscellaneous journals, which can have any type of account as default account. **Solution:** Only allow default accounts having "asset_cash" or "liability_credit_card" as type. opw-3867312 Forward-Port-Of: odoo/enterprise#63989
Steps: - Install the project - Enable Budget management from settings - Create project - Click on set status button inside your project - Create budget Issue: - If budget is not used for expenditure then instead of showing 0% , it displays -0% which is incorrect. Cause: - float value of 'cost' i.e. 0.0 leads to generation of negative value Fix: - Issue is been fixed by applying condition if cost equals 0.0 task-3744319 Forward-Port-Of: odoo/enterprise#65461 Forward-Port-Of
Original PR description
Steps: - Install the project - Enable Budget management from settings - Create project - Click on set status button inside your project - Create budget Issue: - If budget is not used for expenditure then instead of showing 0% , it displays -0% which is incorrect. Cause: - float value of 'cost' i.e. 0.0 leads to generation of negative value Fix: - Issue is been fixed by applying condition if cost equals 0.0 task-3744319 Forward-Port-Of: odoo/enterprise#65461 Forward-Port-Of: odoo/enterprise#56998