Ciao.
Penso di ave risolto il problema.
Preso dallo sconforto e riflettendo sul nostro discorso, mi si è accesa la lampadina
Ho aggiornato sia odoo8 e di conseguenza il database e tutto all'improvviso sembra funzionare.
Credo di essere incappato in un qualche bug del momento. Risolto con l'aggiornamento.
Un ultima cosa. Esiste un modo migliore nel scrivere il metodo write?
Io ho provato la seguente soluzione che sembra funzionare.
@api.multi
def write(self, vals):
order = self.env['sale.order'].browse( self.order_id.id )
defaults = self.product_id_change(order.pricelist_id.id,
product = vals['product_id'] if vals.has_key('product_id') else self.product_id.id,
qty=float(vals['product_uom_qty'] if vals.has_key('product_uom_qty') else self.product_uom_qty),
uom=vals['product_uom'] if vals.has_key('product_uom') else self.product_uom.id,
qty_uos=float(vals['product_uos_qty'] if vals.has_key('product_uos_qty') else self.product_uos_qty),
uos=self.product_uos.id,
name=self.name,
partner_id=order.partner_id.id,
date_order=order.date_order,
fiscal_position=order.fiscal_position[0] if order.fiscal_position else False,
flag=False, # Force name update
context=dict(self._context or {})
)['value']
vals.update({'product_bom_qty': defaults['product_bom_qty'], 'product_uom_qty_tot': defaults['product_uom_qty_tot'] })
res = super(sale_order_line, self).write(vals)
return res
Grazie infinite.