From 296a931505bd7f416e6300efde2ebaaf6b56c2cb Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 30 Aug 2012 19:10:23 +0200 Subject: [PATCH] [WIP] company: better handling of the rml_footer field bzr revid: abo@openerp.com-20120830171023-kqjciz53y8ep6ibp --- openerp/addons/base/res/res_company.py | 52 +++++++++++++++----- openerp/addons/base/res/res_company_view.xml | 2 +- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py index 04c0887b7e1..93e673bc1f9 100644 --- a/openerp/addons/base/res/res_company.py +++ b/openerp/addons/base/res/res_company.py @@ -103,18 +103,25 @@ class res_company(osv.osv): return True def _format_company_footer(self, cr, uid, company, context=None): - """ Format the company's RML footer the right way """ + """ + Format the company's RML footer the right way + + @param company: compny's browse record OR dict with the required data + + @return: string containing the formated footer + """ + val = [] - if company.phone: val.append(_('Phone: ')+company.phone) - if company.fax: val.append(_('Fax: ')+company.fax) - if company.email: val.append(_('Email: ')+company.email) - if company.website: val.append(_('Website: ')+company.website) - if company.vat: val.append(_('TIN: ')+company.vat) - if company.company_registry: val.append(_('Reg: ')+company.company_registry) + if company['phone']: val.append(_('Phone: ')+company['phone']) + if company['fax']: val.append(_('Fax: ')+company['fax']) + if company['email']: val.append(_('Email: ')+company['email']) + if company['website']: val.append(_('Website: ')+company['website']) + if company['vat']: val.append(_('TIN: ')+company['vat']) + if company['company_registry']: val.append(_('Reg: ')+company['company_registry']) - bank_accounts = self.browse(cr, uid, company.id, context=context).bank_ids - bank_account_numbers = [bank_account.acc_number for bank_account in bank_accounts if bank_account.footer] + bank_accounts = self.browse(cr, uid, company['id'], context=context).bank_ids + bank_account_numbers = [bank_account.name_get() for bank_account in bank_accounts if bank_account.footer] # append the account(s) in the footer and manage plural form of "account" if necessary if bank_account_numbers: val.append(_('Bank Account'+('s' if len(bank_account_numbers) > 1 else '')+': ')+', '.join(bank_account_numbers)) @@ -124,14 +131,20 @@ class res_company(osv.osv): def _get_rml_footer(self, cr, uid, ids, field_names, arg, context=None): result = {} for company in self.browse(cr, uid, ids, context=context): - if not company.customize_footer: + if company.customize_footer: + result[company.id] = company.rml_footer + else: result[company.id] = self._format_company_footer(cr, uid, company, context) return result def _set_rml_footer(self, cr, uid, company_id, name, value, arg, context=None): company = self.browse(cr, uid, [company_id], context=context)[0] - rml_footer = self._format_company_footer(cr, uid, company, context) + + if company.customize_footer: + rml_footer = value + else: + rml_footer = self._format_company_footer(cr, uid, company, context) return cr.execute('UPDATE res_company SET rml_footer = %s WHERE id = %s', (rml_footer, company_id)) @@ -170,8 +183,21 @@ class res_company(osv.osv): ('name_uniq', 'unique (name)', 'The company name must be unique !') ] - def on_change_footer(self, cr, uid, ids, customize_footer, phone, email, fax, website, vat, company_registry=False, bank_ids=False, context=None): - return 'todo' + def on_change_footer(self, cr, uid, ids, customize_footer=None, phone=None, email=None, fax=None, website=None, vat=None, company_registry=None, bank_ids=None, context=None): + if not customize_footer: + + company_values = { + 'id': ids[0], + 'customize_footer': customize_footer, + 'phone': phone, + 'email': email, + 'fax': fax, + 'website': website, + 'vat': vat, + 'company_registry': company_registry, + 'bank_ids': bank_ids, + } + return {'value': {'rml_footer': self._format_company_footer(cr, uid, company_values, context)}} def _search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None): diff --git a/openerp/addons/base/res/res_company_view.xml b/openerp/addons/base/res/res_company_view.xml index 5e447ebc995..79931475b08 100644 --- a/openerp/addons/base/res/res_company_view.xml +++ b/openerp/addons/base/res/res_company_view.xml @@ -69,7 +69,7 @@ - +