创建新联系人时,我想设置"客户"真实的"供应商"如果联系人是"个人"反之亦然:如果联系人是公司:设置"客户"为假和"供应商"真的。
到目前为止,我已尝试在xml文件中进行一些更改,但没有什么可以做的......
<field name="supplier">{[('is_company','=', True)],'default_customer': 0,'default_supplier': 1} </field>
有什么建议吗?
提前谢谢
此后我的.py
# -*- coding: utf-8 -*-
from openerp.osv import fields, osv
import time
import datetime
from datetime import datetime, date, time
from openerp import api
class mypartner_custom(osv.osv):
_inherit = 'res.partner'
_columns = {
'plafond_credit' : fields.float(string = 'Plafond Crédit',digits=(6,2)),
'cin' : fields.char(string = 'CIN', size=15),
}
mypartner_custom()
@api.onchange('is_company')
def change_company_type(self):
if self.is_company == True:
self.customer = False
self.supplier = True
else :
self.customer = True
self.supplier = False
答案 0 :(得分:0)
使用onchange方法:
@api.onchange('company_type')
def change_company_type(self):
if self.company_type == 'person':
self.customer = True
self.supplier = False
else :
self.customer = True
self.supplier = True
不要忘记默认值,因为只有在更改company_type值时才执行此方法。
答案 1 :(得分:0)
您正在使用旧的api,请改用此方法:
def onchange_company_type(self, cr, uid, ids, company_type, context=None):
return {'value': {'customer': False, 'supplier': True}} if company_type=='person' else {'value': {'customer': True, 'supplier': False}}
在xml文件的company_type字段中添加此属性
on_change="onchange_company_type(company_type)"
答案 2 :(得分:-1)
覆盖create方法,检查相应的值,并按您的要求进行设置:
def create(self, cr, uid, vals, context=None):
if vals['contact'] == "Individual":
vals['customer'] = True
vals['supplier'] = False
elif vals['contact'] == "Company":
vals['customer'] = False
vals['supplier'] = True
return super(res_partner, self).create(cr, uid, vals, context=context)