Como usar o metodo WRITE
Estou desenvolvendo um código, ja consigo excluir a venda, e o valor do produto voltar ao stok, só que agora estou tentando editar o valor da venda só que me não estou conseguindo aki a source.
from osv import osv, fields
import pooler
class sig_sig(osv.osv):
_name = 'sig.sig'
_columns = {
'name' : fields.char('Nome',size=40),
'cidade':fields.char("Cidade",size=40,required=True),
'bairro': fields.char("Bairro",size=40,required=True),
'numero':fields.integer('Numero',required=True),
'idade': fields.integer('Idade',required=True),
'empresa':fields.char('Empresa',size=40,required=True),
'genero': fields.selection([('',''),('h','Homem'),('m','Mulher')], 'Genero'),
}
sig_sig()
class produto_produto(osv.osv):
_name = 'produto.produto'
_columns = {
'data' :fields.date('Data'),
'codigo':fields.integer("Codigo",required=True),
'name': fields.char('Mercadoria',size=30,required=True),
'valor':fields.float('Valor',required=True),
'quantidade':fields.integer('Quantidade',required=True),
}
produto_produto()
class venda_venda(osv.osv):
_name = 'venda.venda'
_columns = {
'name' : fields.char('Nome',size=40),
'cliente_id':fields.many2one("sig.sig","Clientes",help='Selecione um cliente'),
'produto_id':fields.many2one("produto.produto","Mercadorias",required=True),
'quantidade':fields.integer("Quantidade",required=True),
'valor':fields.float("Valor",required=True),
'data':fields.date('data',required=True),
}
def create(self, cr, uid, vals, context=None):
item=pooler.get_pool(cr.dbname).get('produto.produto').read(cr, uid, vals['produto_id'], ['quantidade', 0])
qtd=item['quantidade']-vals['quantidade']
item=pooler.get_pool(cr.dbname).get('produto.produto').write(cr, uid, vals['produto_id'], {'quantidade':qtd}, context)
result = super(venda_venda,self).create(cr, uid, vals, context)
return result
def unlink(self, cr ,uid, ids,*args, **kwargs):
itens=pooler.get_pool(cr.dbname).get('venda.venda').read(cr, uid, ids, ['quantidade','produto_id'])
for item in itens:
produto=pooler.get_pool(cr.dbname).get('produto.produto').read(cr, uid, item['produto_id'][0], ['quantidade'])
qtd=produto['quantidade']+item['quantidade']
salv=pooler.get_pool(cr.dbname).get('produto.produto').write(cr, uid, item['produto_id'][0], {'quantidade':qtd})
return super(venda_venda, self).unlink(cr, uid, ids,*args, **kwargs)
def write(self, cr, uid, ids, vals, context=None):
itens=pooler.get_pool(cr.dbname).get('venda.venda').read(cr, uid, ids, ['quantidade','produto_id'])
for item in itens:
produto=pooler.get_pool(cr.dbname).get('produto.produto').read(cr, uid, item['produto_id'][0], ['quantidade'])
qtd=produto['quantidade']+item['quantidade']-item['quantidade']
salv=pooler.get_pool(cr.dbname).get('produto.produto').write(cr, uid, item['produto_id'][0], {'quantidade':qtd})
return super(venda_venda,self).write(cr, uid, vals, context)
venda_venda()
Alguem me ajuda a montar o metodo write?
- Se logue ou se registre para poder enviar comentários