Agregar y Heredar campos de otro modelo

75 views
Skip to first unread message

Mauri Sadaniowski

unread,
Mar 9, 2021, 9:39:11 AM3/9/21
to Usuarios Odoo / OpenERP en España
Hola, buenas tardes a todos. Como andan? Les comento el problema que tengo. Resulta que tengo 3 campos en sale.order los cuales necesito verlos en Orden de Produccion. El codigo es el siguiente.

El problema es que funcionan si los hago de a uno, es decir si quiero mostrar solo el campo x_client_name o el campo nro_pedido funcionan pero si pongo los 3 como figura en el codigo, no funciona y no se cual es el error.

Agradeceria cualquier aporte!


# -*- coding: utf-8 -*-

from odoo import models, fields, api


class MRPSalesOrder(models.Model):
_inherit = 'mrp.production'

# DEFINICION DE LOS CAMPOS#####

lustre_color = fields.Char('Lustre')
nro_pedido = fields.Char('Nro. Pedido')
client_order_ref = fields.Char('Viaje')
x_client_name = fields.Char('Cliente')

# FUNCION DE NOMBRE DEL CLIENTE

@api.model
def create(self, vals):
x_client_name = self.env['sale.order'].search([('name', '=', vals[
'origin'])]).partner_id.name
vals['x_client_name'] = x_client_name
rec = super(MRPSalesOrder, self).create(vals)
return rec

# FUNCION DEL NRO DE VIAJE
#
@api.model
def create(self, vals):
client_order_ref = self.env['sale.order'].search([('name', '=', vals[
'origin'])]).client_order_ref
vals['client_order_ref'] = client_order_ref
rec = super(MRPSalesOrder, self).create(vals)
return rec

# FUNCION DEL NRO DE PEDIDO

@api.model

def create(self, vals):
nro_pedido = self.env['sale.order'].search([('name', '=', vals[
'origin'])]).nro_pedido
vals['nro_pedido'] = nro_pedido
rec = super(MRPSalesOrder, self).create(vals)
return rec
#

# # CLASE DE HERENCIA DE SALE.ORDER PARA CREACION DEL CAMPO REQUERIDO


class MRPSales(models.Model):
_inherit = 'sale.order'

# DEFINICION DE LOS CAMPOS

nro_pedido = fields.Char('Nro. Pedido')
client_order_ref = fields.Char('Nro Viaje')

Ignacio Rodriguez Diaz

unread,
Mar 9, 2021, 11:34:24 AM3/9/21
to Usuarios Odoo / OpenERP en España
Hola Mauri, si tienes 3 métodos create, con el mismo nombre, sobre un objeto mrp.production o cualquier otro, no veo el modo de que Odoo logre identificar a cuál de ellos debe llamar, si es que no te da error directamente.

Prueba a hacer todo en el mismo método create, algo de este tipo (no lo he probado):

def create(self, vals):
  pedido_venta = self.env['sale.order'].search([('name', '=', vals['origin'])])
  if pedido_venta:
     vals['x_client_name'] = pedido_venta.partner_id.name
     vals['client_order_ref'] = pedido_venta.client_order_ref
     vals['nro_pedido'] = pedido_venta.nro_pedido
  ...
  rec = super(MRPSalesOrder, self).create(vals)
  return rec  
  ...



--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/openerp-spain-users/287e9039-68f0-46f7-9403-f77cbd78132en%40googlegroups.com.

Mauri Sadaniowski

unread,
Mar 9, 2021, 6:08:29 PM3/9/21
to Usuarios Odoo / OpenERP en España
Muchas gracias Ignacio!! ha sido de gran ayuda!!
Reply all
Reply to author
Forward
0 new messages