Sto realizzando una funzione tale per cui a fronte della variazione della tipologia di prodotto assegno un valore al campo "Riferimento Interno" (default_code).
Ho scritto tutti i miei metodi per il calcolo del valore, ma ho un problema nel salvataggio.
Il metodo write del ProductTemplate viene richiamato due volte, immagino per l'architettura dell'oggetto e delle sue dipendenze.
Ora, il bello (brutto) è che alla prima esecuzione il campo flag e il campo codice vengono popolati correttamente, alla seconda esecuzione il campo flag è già settato a True, mentre il dafault_code non è popolato e quindi il valore non viene salvato.
Qualcuno sa spiegarmi come mai?
@api.multi
def write(self, vals):
self.ensure_one()
if not self.campo_flag:
newpn = self.categ_id._get_next_code(True) #metodo per il calcolo del valore
vals['default_code'] = newpn
vals['campo_flag'] = True
return super(ProductTemplate, self).write(vals)
P.S.
odoo v8