[IMP] Added onchange on company to fetch currency related to it
bzr revid: pso@tinyerp.com-20120823095141-oc840e23y1sk1mjs
This commit is contained in:
parent
4b0ff5f342
commit
7fa9451428
|
@ -3004,6 +3004,12 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
'purchase_tax_rate': fields.float('Purchase Tax(%)'),
|
||||
'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'),
|
||||
}
|
||||
|
||||
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
|
||||
currency_id = False
|
||||
if company_id:
|
||||
currency_id = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id.id
|
||||
return {'value': {'currency_id': currency_id}}
|
||||
|
||||
def onchange_tax_rate(self, cr, uid, ids, rate=False, context=None):
|
||||
return {'value': {'purchase_tax_rate': rate or False}}
|
||||
|
|
|
@ -2370,7 +2370,7 @@
|
|||
<field name="complete_tax_set" invisible="1"/>
|
||||
<div groups="base.group_multi_company">
|
||||
<label for="company_id"/>
|
||||
<field name="company_id" widget="selection"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
|
||||
<field name="company_id" widget="selection" on_change="onchange_company_id(company_id)"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
|
||||
</div>
|
||||
<label for="currency_id"/>
|
||||
<field name="currency_id" />
|
||||
|
|
|
@ -145,42 +145,45 @@ class account_config_settings(osv.osv_memory):
|
|||
|
||||
def onchange_company_id(self, cr, uid, ids, company_id):
|
||||
# update related fields
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id)
|
||||
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
|
||||
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
|
||||
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
|
||||
('company_id', '=', company_id)])
|
||||
values = {
|
||||
'expects_chart_of_accounts': company.expects_chart_of_accounts,
|
||||
'currency_id': company.currency_id.id,
|
||||
'paypal_account': company.paypal_account,
|
||||
'company_footer': company.rml_footer2,
|
||||
'has_chart_of_accounts': has_chart_of_accounts,
|
||||
'has_fiscal_year': bool(fiscalyear_count),
|
||||
'chart_template_id': False,
|
||||
'tax_calculation_rounding_method': company.tax_calculation_rounding_method,
|
||||
}
|
||||
# update journals and sequences
|
||||
for journal_type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
for suffix in ('_journal_id', '_sequence_prefix', '_sequence_next'):
|
||||
values[journal_type + suffix] = False
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
journal_ids = journal_obj.search(cr, uid, [('company_id', '=', company_id)])
|
||||
for journal in journal_obj.browse(cr, uid, journal_ids):
|
||||
if journal.type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
values.update({
|
||||
journal.type + '_journal_id': journal.id,
|
||||
journal.type + '_sequence_prefix': journal.sequence_id.prefix,
|
||||
journal.type + '_sequence_next': journal.sequence_id.number_next,
|
||||
})
|
||||
# update taxes
|
||||
ir_values = self.pool.get('ir.values')
|
||||
taxes_id = ir_values.get_default(cr, uid, 'product.product', 'taxes_id', company_id=company_id)
|
||||
supplier_taxes_id = ir_values.get_default(cr, uid, 'product.product', 'supplier_taxes_id', company_id=company_id)
|
||||
values.update({
|
||||
'default_sale_tax': isinstance(taxes_id, list) and taxes_id[0] or taxes_id,
|
||||
'default_purchase_tax': isinstance(supplier_taxes_id, list) and supplier_taxes_id[0] or supplier_taxes_id,
|
||||
})
|
||||
values = {}
|
||||
values['currency_id'] = False
|
||||
if company_id:
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id)
|
||||
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
|
||||
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
|
||||
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
|
||||
('company_id', '=', company_id)])
|
||||
values = {
|
||||
'expects_chart_of_accounts': company.expects_chart_of_accounts,
|
||||
'currency_id': company.currency_id.id,
|
||||
'paypal_account': company.paypal_account,
|
||||
'company_footer': company.rml_footer2,
|
||||
'has_chart_of_accounts': has_chart_of_accounts,
|
||||
'has_fiscal_year': bool(fiscalyear_count),
|
||||
'chart_template_id': False,
|
||||
'tax_calculation_rounding_method': company.tax_calculation_rounding_method,
|
||||
}
|
||||
# update journals and sequences
|
||||
for journal_type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
for suffix in ('_journal_id', '_sequence_prefix', '_sequence_next'):
|
||||
values[journal_type + suffix] = False
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
journal_ids = journal_obj.search(cr, uid, [('company_id', '=', company_id)])
|
||||
for journal in journal_obj.browse(cr, uid, journal_ids):
|
||||
if journal.type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
values.update({
|
||||
journal.type + '_journal_id': journal.id,
|
||||
journal.type + '_sequence_prefix': journal.sequence_id.prefix,
|
||||
journal.type + '_sequence_next': journal.sequence_id.number_next,
|
||||
})
|
||||
# update taxes
|
||||
ir_values = self.pool.get('ir.values')
|
||||
taxes_id = ir_values.get_default(cr, uid, 'product.product', 'taxes_id', company_id=company_id)
|
||||
supplier_taxes_id = ir_values.get_default(cr, uid, 'product.product', 'supplier_taxes_id', company_id=company_id)
|
||||
values.update({
|
||||
'default_sale_tax': isinstance(taxes_id, list) and taxes_id[0] or taxes_id,
|
||||
'default_purchase_tax': isinstance(supplier_taxes_id, list) and supplier_taxes_id[0] or supplier_taxes_id,
|
||||
})
|
||||
return {'value': values}
|
||||
|
||||
def onchange_chart_template_id(self, cr, uid, ids, chart_template_id, context=None):
|
||||
|
|
Loading…
Reference in New Issue