[WTF] el onchange no funciona en el web client sin el warning.
This commit is contained in:
parent
4b27d29d53
commit
42ad941e01
1 changed files with 14 additions and 10 deletions
|
@ -4,6 +4,8 @@
|
||||||
from odoo import api, models, fields
|
from odoo import api, models, fields
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
|
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class PickingType(models.Model):
|
class PickingType(models.Model):
|
||||||
_inherit = 'stock.picking.type'
|
_inherit = 'stock.picking.type'
|
||||||
|
@ -36,22 +38,24 @@ class Picking(models.Model):
|
||||||
@api.onchange('partner_id')
|
@api.onchange('partner_id')
|
||||||
def onchange_partner_id(self):
|
def onchange_partner_id(self):
|
||||||
for picking in self:
|
for picking in self:
|
||||||
if not self.partner_id:
|
if not picking.partner_id:
|
||||||
return
|
return
|
||||||
if self.picking_type_id.is_deposit:
|
_logger.warning("onchange %s", self.location_dest_id.name)
|
||||||
if self.picking_type_id.code == 'internal':
|
if picking.picking_type_id.is_deposit:
|
||||||
if not self.partner_id.deposit_sale_accept:
|
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.")
|
raise ValidationError("Éste cliente no acepta material en depósito, configúralo antes de crear un depósito para él.")
|
||||||
return
|
return
|
||||||
self.location_dest_id = self.partner_id.deposit_sale_location_id.id,
|
picking.location_dest_id = picking.partner_id.deposit_sale_location_id.id,
|
||||||
elif self.picking_type_id.code == 'incoming':
|
elif picking.picking_type_id.code == 'incoming':
|
||||||
if not self.partner_id.deposit_buy_accept:
|
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.")
|
raise ValidationError("Éste proveedor no suministra material en depósito, configúralo antes de crear un depósito para él.")
|
||||||
return
|
return
|
||||||
self.location_dest_id = self.partner_id.deposit_buy_location_id.id
|
picking.location_dest_id = picking.partner_id.deposit_buy_location_id.id
|
||||||
moves = self.env['stock.move'].search([('picking_id', '=', self.id)])
|
moves = picking.env['stock.move'].search([('picking_id', '=', picking.id)])
|
||||||
for move in moves:
|
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):
|
def change_dest_location(self, vals, code):
|
||||||
if vals.get('partner_id'):
|
if vals.get('partner_id'):
|
||||||
|
|
Loading…
Add table
Reference in a new issue