When have more than one company, for all companies, the cash basis journal set in accounting configuration will be always the related to first company. This issue cause the followiong error trying to validate an invoice for a company different to fisrt one: 'Cannot create moves for different companies.' Because exist a 'cross-configuration' in the cash basis journal. The solution to this issue is include the company in domain that does the search for cash basis journal.
43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# coding: utf-8
|
|
# Copyright 2016 Vauxoo (https://www.vauxoo.com) <info@vauxoo.com>
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
|
|
|
from odoo import models, api, _
|
|
|
|
|
|
class AccountChartTemplate(models.Model):
|
|
_inherit = "account.chart.template"
|
|
|
|
@api.model
|
|
def generate_journals(self, acc_template_ref, company, journals_dict=None):
|
|
"""Set the tax_cash_basis_journal_id on the company"""
|
|
res = super(AccountChartTemplate, self).generate_journals(
|
|
acc_template_ref, company, journals_dict=journals_dict)
|
|
if not self == self.env.ref('l10n_mx.mx_coa'):
|
|
return res
|
|
journal_basis = self.env['account.journal'].search([
|
|
('company_id', '=', company.id),
|
|
('type', '=', 'general'),
|
|
('code', '=', 'CBMX')], limit=1)
|
|
company.write({'tax_cash_basis_journal_id': journal_basis.id})
|
|
return res
|
|
|
|
@api.multi
|
|
def _prepare_all_journals(self, acc_template_ref, company, journals_dict=None):
|
|
"""Create the tax_cash_basis_journal_id"""
|
|
res = super(AccountChartTemplate, self)._prepare_all_journals(
|
|
acc_template_ref, company, journals_dict=journals_dict)
|
|
if not self == self.env.ref('l10n_mx.mx_coa'):
|
|
return res
|
|
account = acc_template_ref.get(self.env.ref('l10n_mx.cuenta118_01').id)
|
|
res.append({
|
|
'type': 'general',
|
|
'name': _('Effectively Paid'),
|
|
'code': 'CBMX',
|
|
'company_id': company.id,
|
|
'default_credit_account_id': account,
|
|
'default_debit_account_id': account,
|
|
'show_on_dashboard': True,
|
|
})
|
|
return res
|