Skip to content

16.0 h 105588 jjs#834

Closed
jjscarafia wants to merge 2 commits intoingadhoc:16.0from
adhoc-dev:16.0-h-105588-jjs
Closed

16.0 h 105588 jjs#834
jjscarafia wants to merge 2 commits intoingadhoc:16.0from
adhoc-dev:16.0-h-105588-jjs

Conversation

@jjscarafia
Copy link
Copy Markdown
Member

No description provided.

el depnds este era terrible a nivel performance (traslada todos los depends de rep cost) y además funcionalmente no es deseado, cambios en costo (por cualquier motivo), no deberían recomputar los costos existentes
Dejamos depends igual que como tenemos en 18+

ver acá ingadhoc@499693f
Copilot AI review requested due to automatic review settings December 15, 2025 20:53
@roboadhoc
Copy link
Copy Markdown
Contributor

Pull request status dashboard

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR simplifies the @api.depends declarations in two modules related to product replenishment costs by removing unnecessarily granular dependencies and relying on Odoo's automatic invalidation when parent records change.

Key Changes:

  • Removed explicit sub-field dependencies (currency_id.rate_ids.rate, rule_id.item_ids.*) in favor of parent field dependencies
  • Removed the @api.depends decorator from _compute_purchase_price method
  • Removed an unnecessary blank line

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
product_replenishment_cost_sale_margin/models/sale_order_line.py Removes @api.depends decorator and blank line from purchase price computation
product_replenishment_cost/models/product_template.py Simplifies dependencies by using parent fields instead of nested sub-fields

@@ -4,7 +4,6 @@
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'

Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El decorador @api.depends ha sido eliminado del método _compute_purchase_price. En Odoo, los métodos de cómputo deben tener @api.depends para que el ORM sepa cuándo invalidar y recalcular el campo. Si este método computa un campo basándose en product_id.replenishment_cost (como indicaba el decorador anterior), la eliminación causará que el campo no se actualice correctamente cuando cambie el costo de reposición. Deberías mantener el decorador @api.depends('product_id.replenishment_cost') para asegurar el recálculo apropiado.

Suggested change
@api.depends('product_id.replenishment_cost')

Copilot uses AI. Check for mistakes.
# 'replenishment_base_cost_currency_id',
# # because of being stored
'replenishment_base_cost_currency_id.rate_ids.rate',
'replenishment_base_cost_currency_id',
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El cambio de 'replenishment_base_cost_currency_id.rate_ids.rate' a solo 'replenishment_base_cost_currency_id' puede causar invalidaciones y recálculos innecesarios. Cuando se usa solo el campo padre, Odoo invalida el cómputo cada vez que cualquier campo del modelo relacionado cambia, no solo cuando cambian las tasas de cambio. Esto puede degradar el rendimiento significativamente. La dependencia granular original (rate_ids.rate) era más eficiente porque limitaba las invalidaciones solo a cambios en las tasas de cambio. A menos que exista una razón técnica específica (como problemas con la invalidación automática en Odoo 19), deberías mantener la dependencia granular.

Suggested change
'replenishment_base_cost_currency_id',
'replenishment_base_cost_currency_id.rate_ids.rate',

Copilot uses AI. Check for mistakes.
'replenishment_cost_rule_id.item_ids.sequence',
'replenishment_cost_rule_id.item_ids.percentage_amount',
'replenishment_cost_rule_id.item_ids.fixed_amount',
'replenishment_cost_rule_id',
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar al comentario anterior, reemplazar las dependencias específicas de item_ids (sequence, percentage_amount, fixed_amount) con solo 'replenishment_cost_rule_id' provocará que el método se recalcule ante cualquier cambio en la regla de costo, incluso si esos cambios no afectan el cálculo del costo de reposición. Las dependencias granulares originales eran más precisas y eficientes. Considera mantener las dependencias específicas en los campos de item_ids que realmente impactan el cálculo.

Suggested change
'replenishment_cost_rule_id',
'replenishment_cost_rule_id.item_ids.sequence',
'replenishment_cost_rule_id.item_ids.percentage_amount',
'replenishment_cost_rule_id.item_ids.fixed_amount',

Copilot uses AI. Check for mistakes.
@jjscarafia
Copy link
Copy Markdown
Member Author

@roboadhoc r+

@roboadhoc
Copy link
Copy Markdown
Contributor

@jjscarafia because this PR has multiple commits, I need to know how to merge it:

  • merge to merge directly, using the PR as merge commit message
  • rebase-merge to rebase and merge, using the PR as merge commit message
  • rebase-ff to rebase and fast-forward

@zaoral
Copy link
Copy Markdown
Contributor

zaoral commented Dec 15, 2025

@roboadhoc rebase-ff

@roboadhoc
Copy link
Copy Markdown
Contributor

Merge method set to rebase and fast-forward.

roboadhoc pushed a commit that referenced this pull request Dec 15, 2025
el depnds este era terrible a nivel performance (traslada todos los depends de rep cost) y además funcionalmente no es deseado, cambios en costo (por cualquier motivo), no deberían recomputar los costos existentes

Part-of: #834
Signed-off-by: Juan José Scarafía <jjs@adhoc.com.ar>
roboadhoc pushed a commit that referenced this pull request Dec 15, 2025
Dejamos depends igual que como tenemos en 18+

ver acá 499693f

closes #834

Signed-off-by: Juan José Scarafía <jjs@adhoc.com.ar>
@fw-bot-adhoc fw-bot-adhoc mentioned this pull request Dec 15, 2025
@roboadhoc roboadhoc closed this Dec 15, 2025
@roboadhoc roboadhoc deleted the 16.0-h-105588-jjs branch December 15, 2025 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants