Files
enterprise-addons/l10n_es_reports/tests/test_libro_diario.py
T

118 lines
6.0 KiB
Python

from odoo import Command, fields
from odoo.addons.account_reports.tests.common import TestAccountReportsCommon
from odoo.exceptions import UserError
from odoo.tests import tagged
@tagged('post_install_l10n', 'post_install', '-at_install')
class TestLibroDiarioXLSX(TestAccountReportsCommon):
@classmethod
@TestAccountReportsCommon.setup_country('es')
def setUpClass(cls):
super().setUpClass()
cls.report = cls.env.ref('account_reports.journal_report')
tax_repartition_line = cls.company_data['default_tax_sale'].refund_repartition_line_ids\
.filtered(lambda line: line.repartition_type == 'tax')
cls.move_1 = cls.env['account.move'].create({
'company_id': cls.company_data['company'].id,
'move_type': 'entry',
'date': fields.Date.from_string('2020-12-10'),
'line_ids': [
Command.create({
'name': 'revenue line 1a',
'account_id': cls.company_data['default_account_revenue'].id,
'debit': 500.0,
}),
Command.create({
'name': 'revenue line 1b',
'account_id': cls.company_data['default_account_revenue'].id,
'debit': 1000.0,
'tax_ids': [Command.set(cls.company_data['default_tax_sale'].ids)],
}),
Command.create({
'name': 'tax line 1',
'account_id': cls.company_data['default_account_tax_sale'].id,
'debit': 150.0,
'tax_repartition_line_id': tax_repartition_line.id,
}),
Command.create({
'name': 'counterpart line 1',
'account_id': cls.company_data['default_account_expense'].id,
'credit': 1650.0,
}),
]
})
cls.move_2 = cls.env['account.move'].create({
'company_id': cls.company_data['company'].id,
'move_type': 'entry',
'date': fields.Date.from_string('2020-12-01'),
'line_ids': [
Command.create({
'name': 'revenue line 2',
'account_id': cls.company_data['default_account_revenue'].id,
'debit': 500.0,
}),
Command.create({
'name': 'tax line 2',
'account_id': cls.company_data['default_account_tax_sale'].id,
'debit': 150.0,
'tax_repartition_line_id': tax_repartition_line.id,
}),
Command.create({
'name': 'counterpart line 2',
'account_id': cls.company_data['default_account_expense'].id,
'credit': 650.0,
}),
]
})
(cls.move_1 + cls.move_2).action_post()
def test_libro_diario_non_es_error(self):
non_es_company = self.env['res.company'].search([('partner_id.country_code', '!=', 'ES')], limit=1)
self.env.user.write({'company_ids': [Command.link(non_es_company.id)]})
self.env = self.env(context=dict(self.env.context, allowed_company_ids=non_es_company.ids))
options = self._generate_options(self.report.with_env(self.env), '2020-12-01', '2020-12-31')
with self.assertRaisesRegex(
UserError,
'This report export is only available for ES companies.'
):
self.env[self.report.custom_handler_model_name].es_libro_diario_export_to_xlsx(options)
def test_libro_diario_export(self):
""" Test that the export of the Libro Diario completes without failure and that the button to export it is present. """
options = self._generate_options(self.report, '2020-12-01', '2020-12-31')
libro_button = [button for button in options['buttons'] if button.get('action_param') == 'es_libro_diario_export_to_xlsx']
self.assertEqual(len(libro_button), 1)
results = self.env[self.report.custom_handler_model_name].es_libro_diario_export_to_xlsx(options)
self.assertEqual(results['file_name'], 'libro_diario.xlsx')
def test_libro_diario_line_data(self):
# Activate single company mode
self.env.company = self.env.companies = self.company_data['company']
self.company.vat = 'ESA12345674'
options = self._generate_options(self.report, '2020-12-01', '2020-12-31')
header, data = self.env[self.report.custom_handler_model_name]._es_libro_diario_xlsx_get_data(options)
self.assertListEqual(header, [
['company_1_data', 'ESA12345674'],
['General Ledger - 2020-12-01_2020-12-31']
])
self.assertListEqual(data, [
['Entry', 'Line', 'Date', 'Description', 'Document', 'Account Code', 'Account Name', 'Debit', 'Credit'],
[ 1, 1, '01/12/2020', 'revenue line 2', 'MISC/2020/12/0001', '700000', 'Merchandise sold', 500.0, 0.0],
[ 1, 2, '01/12/2020', 'tax line 2', 'MISC/2020/12/0001', '477000', 'Taxation authorities, output VAT', 150.0, 0.0],
[ 1, 3, '01/12/2020', 'counterpart line 2', 'MISC/2020/12/0001', '600000', 'Merchandise purchased', 0.0, 650.0],
[ 2, 1, '10/12/2020', 'revenue line 1a', 'MISC/2020/12/0002', '700000', 'Merchandise sold', 500.0, 0.0],
[ 2, 2, '10/12/2020', 'revenue line 1b', 'MISC/2020/12/0002', '700000', 'Merchandise sold', 1000.0, 0.0],
[ 2, 3, '10/12/2020', 'tax line 1', 'MISC/2020/12/0002', '477000', 'Taxation authorities, output VAT', 150.0, 0.0],
[ 2, 4, '10/12/2020', 'counterpart line 1', 'MISC/2020/12/0002', '600000', 'Merchandise purchased', 0.0, 1650.0],
])