Ciao,
dai uno sguardo al file invoice.py nel modulo account,
nel modello account.invoice:
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
try:
res = super(account_invoice, self).create(cr, uid, vals, context)
for inv_id, name in self.name_get(cr, uid, [res], context=context):
ctx = context.copy()
if vals.get('type', 'in_invoice') in ('out_invoice', 'out_refund'):
ctx = self.get_log_context(cr, uid, context=ctx)
message = _("Invoice '%s' is waiting for validation.") % name
self.log(cr, uid, inv_id, message, context=ctx)
return res
except Exception, e:
if '"journal_id" viol' in e.args[0]:
raise orm.except_orm(_('Configuration Error!'),
_('There is no Accounting Journal of type Sale/Purchase defined!'))
else:
raise orm.except_orm(_('Unknown Error'), str(e))
praticamente dovresti fare un override del metodo orm di creazione dell'oggetto e (magari dopo avere richiamato il metodo ereditato come nell'esempio) creare anche il prodotto associato.
Per il metodo write vale lo stesso procedimento
A presto
Roberto