- Convertir 4 tests de decorador @patch a context manager 'with patch(...)' para evitar RuntimeError en LocalProxy de Werkzeug - Corregir patrón env(user=..., context=dict(...)) en Odoo 18 (sin .with_context()) - Agregar website real al mock para integración con helpers de pricing (_get_pricing_info) - Añadir pickup_date en fixture de existing_order para que _find_recent_draft_order localice correctamente - BUGFIX: Agregar (5,) a order_line para limpiar líneas previas al actualizar pedido existente Resultado: 0 failed, 0 errors de 4 tests en Docker para TestConfirmEskaera_Integration BREAKING: _create_or_update_sale_order ahora limpia las líneas anteriores con (5,) antes de asignar las nuevas cuando se actualiza un pedido existente. Comportamiento previo (duplicación de líneas) era un bug.
39 lines
1,011 B
Python
39 lines
1,011 B
Python
# Copyright 2026 Criptomart
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api
|
|
from odoo import fields
|
|
from odoo import models
|
|
|
|
|
|
class StockMoveLine(models.Model):
|
|
_inherit = "stock.move.line"
|
|
|
|
product_categ_id = fields.Many2one(
|
|
comodel_name="product.category",
|
|
string="Product Category (Batch)",
|
|
related="product_id.categ_id",
|
|
store=True,
|
|
readonly=True,
|
|
)
|
|
|
|
is_collected = fields.Boolean(
|
|
string="Collected",
|
|
default=False,
|
|
copy=False,
|
|
)
|
|
|
|
consumer_group_id = fields.Many2one(
|
|
comodel_name="res.partner",
|
|
compute="_compute_consumer_group_id",
|
|
readonly=True,
|
|
)
|
|
|
|
@api.depends("picking_id")
|
|
def _compute_consumer_group_id(self):
|
|
for line in self:
|
|
picking = line.picking_id
|
|
if picking:
|
|
line.consumer_group_id = picking.batch_consumer_group_id
|
|
else:
|
|
line.consumer_group_id = False
|