From 42ad941e013a07d2ee27598876e77419573e622d Mon Sep 17 00:00:00 2001 From: snt Date: Fri, 13 Sep 2024 13:54:15 +0200 Subject: [PATCH] [WTF] el onchange no funciona en el web client sin el warning. --- .../models/stock_picking.py | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/stock_picking_deposito/models/stock_picking.py b/stock_picking_deposito/models/stock_picking.py index 9340d11..f411011 100644 --- a/stock_picking_deposito/models/stock_picking.py +++ b/stock_picking_deposito/models/stock_picking.py @@ -4,6 +4,8 @@ from odoo import api, models, fields from odoo.exceptions import ValidationError +import logging +_logger = logging.getLogger(__name__) class PickingType(models.Model): _inherit = 'stock.picking.type' @@ -36,22 +38,24 @@ class Picking(models.Model): @api.onchange('partner_id') def onchange_partner_id(self): for picking in self: - if not self.partner_id: + if not picking.partner_id: return - if self.picking_type_id.is_deposit: - if self.picking_type_id.code == 'internal': - if not self.partner_id.deposit_sale_accept: + _logger.warning("onchange %s", self.location_dest_id.name) + if picking.picking_type_id.is_deposit: + if picking.picking_type_id.code == 'internal': + if not picking.partner_id.deposit_sale_accept: raise ValidationError("Éste cliente no acepta material en depósito, configúralo antes de crear un depósito para él.") return - self.location_dest_id = self.partner_id.deposit_sale_location_id.id, - elif self.picking_type_id.code == 'incoming': - if not self.partner_id.deposit_buy_accept: + picking.location_dest_id = picking.partner_id.deposit_sale_location_id.id, + elif picking.picking_type_id.code == 'incoming': + if not picking.partner_id.deposit_buy_accept: raise ValidationError("Éste proveedor no suministra material en depósito, configúralo antes de crear un depósito para él.") return - self.location_dest_id = self.partner_id.deposit_buy_location_id.id - moves = self.env['stock.move'].search([('picking_id', '=', self.id)]) + picking.location_dest_id = picking.partner_id.deposit_buy_location_id.id + moves = picking.env['stock.move'].search([('picking_id', '=', picking.id)]) for move in moves: - move.write({'partner_id': self.partner_id.id}, {'location_dest_id': self.location_dest_id}) + move.write({'partner_id': picking.partner_id.id}, {'location_dest_id': picking.location_dest_id}) + _logger.warning("onchange %s", picking.location_dest_id.name) def change_dest_location(self, vals, code): if vals.get('partner_id'):