[IMP]: base: Improvement in company view, Added function fields for address information

bzr revid: rpa@tinyerp.com-20110512134015-8naikq64nabar4vy
This commit is contained in:
Rucha (Open ERP) 2011-05-12 19:10:15 +05:30
parent b81b440c2b
commit eb11bcb933
2 changed files with 38 additions and 0 deletions

View File

@ -199,6 +199,16 @@
</group>
<notebook colspan="4">
<page string="General Information">
<separator string="Address Information" colspan="4"/>
<field name="street"/>
<field name="street2"/>
<field name="zip"/>
<field name="city"/>
<!--field name="country_id"/>
<!NOT WORKING field name="state_id"/-->
<field name="phone"/>
<field name="email"/>
<separator string="Reporting Information" colspan="4"/>
<field name="rml_header1" colspan="4"/>
<field name="rml_footer1" colspan="4"/>
<field name="rml_footer2" colspan="4"/>

View File

@ -72,6 +72,26 @@ class res_company(osv.osv):
_name = "res.company"
_description = 'Companies'
_order = 'name'
def _get_address_data(self, cr, uid, ids, name, arg, context=None):
result = {}
name = name[0]
for company in self.browse(cr, uid, ids, context=context):
result[company.id] = {}
if company.partner_id and company.partner_id.address:
address = company.partner_id.address[0]
result[company.id][name] = address[name] or False
else:
result[company.id][name] = False
return result
def _set_address_data(self, cr, uid, company_id, name, value, arg, context=None):
company = self.browse(cr, uid, company_id, context=context)
address = company.partner_id and company.partner_id.address and company.partner_id.address[0].id
address_obj = self.pool.get('res.partner.address')
address_obj.write(cr, uid, [address], {name: value or False})
return True
_columns = {
'name': fields.char('Company Name', size=64, required=True),
'parent_id': fields.many2one('res.company', 'Parent Company', select=True),
@ -88,6 +108,14 @@ class res_company(osv.osv):
'currency_ids': fields.one2many('res.currency', 'company_id', 'Currency'),
'user_ids': fields.many2many('res.users', 'res_company_users_rel', 'cid', 'user_id', 'Accepted Users'),
'account_no':fields.char('Account No.', size=64),
'street' : fields.function(_get_address_data, fnct_inv=_set_address_data, size=128, type='char', method=True, string="Street", multi='street'),
'street2' : fields.function(_get_address_data, fnct_inv=_set_address_data, size=128, type='char', method=True, string="Street2", multi='street2'),
'zip' : fields.function(_get_address_data, fnct_inv=_set_address_data, size=24, type='char', method=True, string="Zip", multi='zip'),
'city' : fields.function(_get_address_data, fnct_inv=_set_address_data, size=24, type='char', method=True, string="City", multi='city'),
# 'state_id' : fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', method=True, string="State", multi='state_id'),
# 'country_id' : fields.function(_get_address_data, fnct_inv=_set_address_data, type='many2one', method=True, string="Country", multi='country_id'),
'email' : fields.function(_get_address_data, fnct_inv=_set_address_data, size=64, type='char', method=True, string="Email", multi='email'),
'phone' : fields.function(_get_address_data, fnct_inv=_set_address_data, size=64, type='char', method=True, string="Phone", multi='phone'),
}
def _search(self, cr, uid, args, offset=0, limit=None, order=None,