'Set the \'use_cash_basis\' and \'cash_basis_account\' fields on account.account. This hack is needed due to the fact
that the tax template does not have the fields \'use_cash_basis\' and \'cash_basis_account\'.
This hunk should be removed in master, as the account_tax_cash_basis module has been merged already in account
module'

@api.multi
def _load_template(self, company, code_digits=None, transfer_account_id=None, account_ref=None, taxes_ref=None):

    self.ensure_one()
    (accounts, taxes) = super(AccountChartTemplate, self)._load_template(company, code_digits=code_digits, transfer_account_id=transfer_account_id, account_ref=account_ref, taxes_ref=taxes_ref)
    if (not (self == self.env.ref('l10n_mx.mx_coa'))):
        return (accounts, taxes)
    account_tax_obj = self.env['account.tax']
    account_obj = self.env['account.account']
    taxes_acc = {'IVA': account_obj.search([('code', '=', '208.01.01')]), 'ITAXR_04-OUT': account_obj.search([('code', '=', '216.10.20')]), 'ITAXR_10-OUT': account_obj.search([('code', '=', '216.10.20')]), 'ITAX_1067-OUT': account_obj.search([('code', '=', '216.10.20')]), 'ITAX_167-OUT': account_obj.search([('code', '=', '216.10.20')]), 'ITAX_010-OUT': account_obj.search([('code', '=', '118.01.01')]), 'ITAX_160-OUT': account_obj.search([('code', '=', '118.01.01')])}
    for tax in self.tax_template_ids:
        if (tax.description not in taxes_acc):
            continue
        account_tax_obj.browse(taxes.get(tax.id)).write({'use_cash_basis': True, 'cash_basis_account': taxes_acc.get(tax.description).id})
    return (accounts, taxes)
