summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRucha (Open ERP) <rpa@tinyerp.com>2011-05-12 19:10:15 +0530
committerRucha (Open ERP) <rpa@tinyerp.com>2011-05-12 19:10:15 +0530
commiteb11bcb933892cd2c2d2bd372f3a19a6184d4911 (patch)
treee1874465f28abbb442fc431acd3cfdd25ac938fd
parentb81b440c2b895a566b4e7ae3482ce9624c45f52c (diff)
[IMP]: base: Improvement in company view, Added function fields for address information
bzr revid: rpa@tinyerp.com-20110512134015-8naikq64nabar4vy
-rw-r--r--openerp/addons/base/base_update.xml10
-rw-r--r--openerp/addons/base/res/res_company.py28
2 files changed, 38 insertions, 0 deletions
diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml
index 086459dbab7..de8b4b31279 100644
--- a/openerp/addons/base/base_update.xml
+++ b/openerp/addons/base/base_update.xml
@@ -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"/>
diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py
index 6401dc15365..89f4790da35 100644
--- a/openerp/addons/base/res/res_company.py
+++ b/openerp/addons/base/res/res_company.py
@@ -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,