You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
652 lines
27 KiB
652 lines
27 KiB
# Author: Julien Coux
|
|
# Copyright 2016 Camptocamp SA
|
|
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
import time
|
|
|
|
from odoo.tests import common
|
|
from odoo import fields, api
|
|
from datetime import date
|
|
|
|
|
|
class TestGeneralLedgerReport(common.TransactionCase):
|
|
|
|
def setUp(self):
|
|
super(TestGeneralLedgerReport, self).setUp()
|
|
self.before_previous_fy_year = fields.Date.from_string('2014-05-05')
|
|
self.previous_fy_date_start = fields.Date.from_string('2015-01-01')
|
|
self.previous_fy_date_end = fields.Date.from_string('2015-12-31')
|
|
self.fy_date_start = fields.Date.from_string('2016-01-01')
|
|
self.fy_date_end = fields.Date.from_string('2016-12-31')
|
|
self.receivable_account = self.env['account.account'].search([
|
|
('user_type_id.name', '=', 'Receivable')
|
|
], limit=1)
|
|
self.income_account = self.env['account.account'].search([
|
|
('user_type_id.name', '=', 'Income')
|
|
], limit=1)
|
|
self.unaffected_account = self.env['account.account'].search([
|
|
(
|
|
'user_type_id',
|
|
'=',
|
|
self.env.ref('account.data_unaffected_earnings').id
|
|
)], limit=1)
|
|
self.partner = self.env.ref('base.res_partner_12')
|
|
|
|
def _add_move(
|
|
self,
|
|
date,
|
|
receivable_debit,
|
|
receivable_credit,
|
|
income_debit,
|
|
income_credit,
|
|
unaffected_debit=0,
|
|
unaffected_credit=0
|
|
):
|
|
move_name = 'expense accrual'
|
|
journal = self.env['account.journal'].search([], limit=1)
|
|
partner = self.env.ref('base.res_partner_12')
|
|
move_vals = {
|
|
'journal_id': journal.id,
|
|
'name': move_name,
|
|
'date': date,
|
|
'line_ids': [
|
|
(0, 0, {
|
|
'name': move_name,
|
|
'debit': receivable_debit,
|
|
'credit': receivable_credit,
|
|
'account_id': self.receivable_account.id,
|
|
'partner_id': partner.id}),
|
|
(0, 0, {
|
|
'name': move_name,
|
|
'debit': income_debit,
|
|
'credit': income_credit,
|
|
'account_id': self.income_account.id,
|
|
'partner_id': partner.id}),
|
|
(0, 0, {
|
|
'name': move_name,
|
|
'debit': unaffected_debit,
|
|
'credit': unaffected_credit,
|
|
'account_id': self.unaffected_account.id,
|
|
'partner_id': partner.id}),
|
|
]}
|
|
move = self.env['account.move'].create(move_vals)
|
|
move.post()
|
|
|
|
def _get_report_lines(self, with_partners=False):
|
|
centralize = True
|
|
if with_partners:
|
|
centralize = False
|
|
company = self.env.ref('base.main_company')
|
|
general_ledger = self.env['general.ledger.report.wizard'].create({
|
|
'date_from': self.fy_date_start,
|
|
'date_to': self.fy_date_end,
|
|
'target_move': 'posted',
|
|
'hide_account_at_0': False,
|
|
'company_id': company.id,
|
|
'fy_start_date': self.fy_date_start,
|
|
'centralize': centralize,
|
|
})
|
|
data = general_ledger._prepare_report_general_ledger()
|
|
res_data = self.env[
|
|
'report.account_financial_report.general_ledger'
|
|
]._get_report_values(general_ledger, data)
|
|
return res_data
|
|
|
|
@api.model
|
|
def check_account_in_report(self, account_id, general_ledger):
|
|
account_in_report = False
|
|
for account in general_ledger:
|
|
if account['id'] == account_id:
|
|
account_in_report = True
|
|
break
|
|
return account_in_report
|
|
|
|
@api.model
|
|
def check_partner_in_report(self, account_id, partner_id, general_ledger):
|
|
partner_in_report = False
|
|
for account in general_ledger:
|
|
if account['id'] == account_id and account['partners']:
|
|
for partner in account['list_partner']:
|
|
if partner['id'] == partner_id:
|
|
partner_in_report = True
|
|
return partner_in_report
|
|
|
|
@api.model
|
|
def _get_initial_balance(self, account_id, general_ledger):
|
|
initial_balance = False
|
|
for account in general_ledger:
|
|
if account['id'] == account_id:
|
|
initial_balance = account['init_bal']
|
|
return initial_balance
|
|
|
|
@api.model
|
|
def _get_partner_initial_balance(self, account_id, partner_id,
|
|
general_ledger):
|
|
initial_balance = False
|
|
for account in general_ledger:
|
|
if account['id'] == account_id and account['partners']:
|
|
for partner in account['list_partner']:
|
|
if partner['id'] == partner_id:
|
|
initial_balance = partner['init_bal']
|
|
return initial_balance
|
|
|
|
@api.model
|
|
def _get_final_balance(self, account_id, general_ledger):
|
|
final_balance = False
|
|
for account in general_ledger:
|
|
if account['id'] == account_id:
|
|
final_balance = account['fin_bal']
|
|
return final_balance
|
|
|
|
@api.model
|
|
def _get_partner_final_balance(
|
|
self, account_id, partner_id, general_ledger):
|
|
final_balance = False
|
|
for account in general_ledger:
|
|
if account['id'] == account_id and account['partners']:
|
|
for partner in account['list_partner']:
|
|
if partner['id'] == partner_id:
|
|
final_balance = partner['fin_bal']
|
|
return final_balance
|
|
|
|
def test_01_account_balance(self):
|
|
# Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_receivable_account = self.check_account_in_report(
|
|
self.receivable_account.id, general_ledger)
|
|
self.assertFalse(check_receivable_account)
|
|
check_income_account = self.check_account_in_report(
|
|
self.income_account.id, general_ledger)
|
|
self.assertFalse(check_income_account)
|
|
|
|
# Add a move at the previous day of the first day of fiscal year
|
|
# to check the initial balance
|
|
self._add_move(
|
|
date=self.previous_fy_date_end,
|
|
receivable_debit=1000,
|
|
receivable_credit=0,
|
|
income_debit=0,
|
|
income_credit=1000
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_receivable_account = self.check_account_in_report(
|
|
self.receivable_account.id, general_ledger)
|
|
self.assertTrue(check_receivable_account)
|
|
check_income_account = self.check_account_in_report(
|
|
self.income_account.id, general_ledger)
|
|
self.assertFalse(check_income_account)
|
|
|
|
# Check the initial and final balance
|
|
receivable_init_balance = self._get_initial_balance(
|
|
self.receivable_account.id, general_ledger)
|
|
receivable_fin_balance = self._get_final_balance(
|
|
self.receivable_account.id, general_ledger)
|
|
|
|
self.assertEqual(receivable_init_balance['debit'], 1000)
|
|
self.assertEqual(receivable_init_balance['credit'], 0)
|
|
self.assertEqual(receivable_init_balance['balance'], 1000)
|
|
self.assertEqual(receivable_fin_balance['debit'], 1000)
|
|
self.assertEqual(receivable_fin_balance['credit'], 0)
|
|
self.assertEqual(receivable_fin_balance['balance'], 1000)
|
|
|
|
# Add reversale move of the initial move the first day of fiscal year
|
|
# to check the first day of fiscal year is not used
|
|
# to compute the initial balance
|
|
self._add_move(
|
|
date=self.fy_date_start,
|
|
receivable_debit=0,
|
|
receivable_credit=1000,
|
|
income_debit=1000,
|
|
income_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_receivable_account = self.check_account_in_report(
|
|
self.receivable_account.id, general_ledger)
|
|
self.assertTrue(check_receivable_account)
|
|
check_income_account = self.check_account_in_report(
|
|
self.income_account.id, general_ledger)
|
|
self.assertTrue(check_income_account)
|
|
|
|
# Check the initial and final balance
|
|
receivable_init_balance = self._get_initial_balance(
|
|
self.receivable_account.id, general_ledger)
|
|
receivable_fin_balance = self._get_final_balance(
|
|
self.receivable_account.id, general_ledger)
|
|
income_init_balance = self._get_initial_balance(
|
|
self.income_account.id, general_ledger)
|
|
income_fin_balance = self._get_final_balance(
|
|
self.income_account.id, general_ledger)
|
|
|
|
self.assertEqual(receivable_init_balance['debit'], 1000)
|
|
self.assertEqual(receivable_init_balance['credit'], 0)
|
|
self.assertEqual(receivable_init_balance['balance'], 1000)
|
|
self.assertEqual(receivable_fin_balance['debit'], 1000)
|
|
self.assertEqual(receivable_fin_balance['credit'], 1000)
|
|
self.assertEqual(receivable_fin_balance['balance'], 0)
|
|
|
|
self.assertEqual(income_init_balance['debit'], 0)
|
|
self.assertEqual(income_init_balance['credit'], 0)
|
|
self.assertEqual(income_init_balance['balance'], 0)
|
|
self.assertEqual(income_fin_balance['debit'], 1000)
|
|
self.assertEqual(income_fin_balance['credit'], 0)
|
|
self.assertEqual(income_fin_balance['balance'], 1000)
|
|
|
|
# Add another move at the end day of fiscal year
|
|
# to check that it correctly used on report
|
|
self._add_move(
|
|
date=self.fy_date_end,
|
|
receivable_debit=0,
|
|
receivable_credit=1000,
|
|
income_debit=1000,
|
|
income_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_receivable_account = self.check_account_in_report(
|
|
self.receivable_account.id, general_ledger)
|
|
self.assertTrue(check_receivable_account)
|
|
check_income_account = self.check_account_in_report(
|
|
self.income_account.id, general_ledger)
|
|
self.assertTrue(check_income_account)
|
|
|
|
# Check the initial and final balance
|
|
receivable_init_balance = self._get_initial_balance(
|
|
self.receivable_account.id, general_ledger)
|
|
receivable_fin_balance = self._get_final_balance(
|
|
self.receivable_account.id, general_ledger)
|
|
income_init_balance = self._get_initial_balance(
|
|
self.income_account.id, general_ledger)
|
|
income_fin_balance = self._get_final_balance(
|
|
self.income_account.id, general_ledger)
|
|
|
|
self.assertEqual(receivable_init_balance['debit'], 1000)
|
|
self.assertEqual(receivable_init_balance['credit'], 0)
|
|
self.assertEqual(receivable_init_balance['balance'], 1000)
|
|
self.assertEqual(receivable_fin_balance['debit'], 1000)
|
|
self.assertEqual(receivable_fin_balance['credit'], 2000)
|
|
self.assertEqual(receivable_fin_balance['balance'], -1000)
|
|
|
|
self.assertEqual(income_init_balance['debit'], 0)
|
|
self.assertEqual(income_init_balance['credit'], 0)
|
|
self.assertEqual(income_init_balance['balance'], 0)
|
|
self.assertEqual(income_fin_balance['debit'], 2000)
|
|
self.assertEqual(income_fin_balance['credit'], 0)
|
|
self.assertEqual(income_fin_balance['balance'], 2000)
|
|
|
|
def test_02_partner_balance(self):
|
|
# Generate the general ledger line
|
|
res_data = self._get_report_lines(with_partners=True)
|
|
general_ledger = res_data['general_ledger']
|
|
check_partner = self.check_partner_in_report(
|
|
self.receivable_account.id, self.partner.id, general_ledger)
|
|
self.assertFalse(check_partner)
|
|
|
|
# Add a move at the previous day of the first day of fiscal year
|
|
# to check the initial balance
|
|
self._add_move(
|
|
date=self.previous_fy_date_end,
|
|
receivable_debit=1000,
|
|
receivable_credit=0,
|
|
income_debit=0,
|
|
income_credit=1000
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines(with_partners=True)
|
|
general_ledger = res_data['general_ledger']
|
|
check_partner = self.check_partner_in_report(
|
|
self.receivable_account.id, self.partner.id, general_ledger)
|
|
self.assertTrue(check_partner)
|
|
|
|
# Check the initial and final balance
|
|
partner_initial_balance = self._get_partner_initial_balance(
|
|
self.receivable_account.id, self.partner.id, general_ledger
|
|
)
|
|
partner_final_balance = self._get_partner_final_balance(
|
|
self.receivable_account.id, self.partner.id, general_ledger
|
|
)
|
|
|
|
self.assertEqual(partner_initial_balance['debit'], 1000)
|
|
self.assertEqual(partner_initial_balance['credit'], 0)
|
|
self.assertEqual(partner_initial_balance['balance'], 1000)
|
|
self.assertEqual(partner_final_balance['debit'], 1000)
|
|
self.assertEqual(partner_final_balance['credit'], 0)
|
|
self.assertEqual(partner_final_balance['balance'], 1000)
|
|
|
|
# Add reversale move of the initial move the first day of fiscal year
|
|
# to check the first day of fiscal year is not used
|
|
# to compute the initial balance
|
|
self._add_move(
|
|
date=self.fy_date_start,
|
|
receivable_debit=0,
|
|
receivable_credit=1000,
|
|
income_debit=1000,
|
|
income_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines(with_partners=True)
|
|
general_ledger = res_data['general_ledger']
|
|
check_partner = self.check_partner_in_report(
|
|
self.receivable_account.id, self.partner.id, general_ledger)
|
|
self.assertTrue(check_partner)
|
|
|
|
# Check the initial and final balance
|
|
partner_initial_balance = self._get_partner_initial_balance(
|
|
self.receivable_account.id, self.partner.id, general_ledger
|
|
)
|
|
partner_final_balance = self._get_partner_final_balance(
|
|
self.receivable_account.id, self.partner.id, general_ledger
|
|
)
|
|
|
|
self.assertEqual(partner_initial_balance['debit'], 1000)
|
|
self.assertEqual(partner_initial_balance['credit'], 0)
|
|
self.assertEqual(partner_initial_balance['balance'], 1000)
|
|
self.assertEqual(partner_final_balance['debit'], 1000)
|
|
self.assertEqual(partner_final_balance['credit'], 1000)
|
|
self.assertEqual(partner_final_balance['balance'], 0)
|
|
|
|
# Add another move at the end day of fiscal year
|
|
# to check that it correctly used on report
|
|
self._add_move(
|
|
date=self.fy_date_end,
|
|
receivable_debit=0,
|
|
receivable_credit=1000,
|
|
income_debit=1000,
|
|
income_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines(with_partners=True)
|
|
general_ledger = res_data['general_ledger']
|
|
check_partner = self.check_partner_in_report(
|
|
self.receivable_account.id, self.partner.id, general_ledger)
|
|
self.assertTrue(check_partner)
|
|
|
|
# Check the initial and final balance
|
|
partner_initial_balance = self._get_partner_initial_balance(
|
|
self.receivable_account.id, self.partner.id, general_ledger
|
|
)
|
|
partner_final_balance = self._get_partner_final_balance(
|
|
self.receivable_account.id, self.partner.id, general_ledger
|
|
)
|
|
|
|
self.assertEqual(partner_initial_balance['debit'], 1000)
|
|
self.assertEqual(partner_initial_balance['credit'], 0)
|
|
self.assertEqual(partner_initial_balance['balance'], 1000)
|
|
self.assertEqual(partner_final_balance['debit'], 1000)
|
|
self.assertEqual(partner_final_balance['credit'], 2000)
|
|
self.assertEqual(partner_final_balance['balance'], -1000)
|
|
|
|
def test_03_unaffected_account_balance(self):
|
|
# Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 0)
|
|
self.assertEqual(unaffected_init_balance['credit'], 0)
|
|
self.assertEqual(unaffected_init_balance['balance'], 0)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 0)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 0)
|
|
self.assertEqual(unaffected_fin_balance['balance'], 0)
|
|
|
|
# Add a move at the previous day of the first day of fiscal year
|
|
# to check the initial balance
|
|
self._add_move(
|
|
date=self.previous_fy_date_end,
|
|
receivable_debit=1000,
|
|
receivable_credit=0,
|
|
income_debit=0,
|
|
income_credit=1000
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 0)
|
|
self.assertEqual(unaffected_init_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_init_balance['balance'], -1000)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 0)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['balance'], -1000)
|
|
|
|
# Add reversale move of the initial move the first day of fiscal year
|
|
# to check the first day of fiscal year is not used
|
|
# to compute the initial balance
|
|
self._add_move(
|
|
date=self.fy_date_start,
|
|
receivable_debit=0,
|
|
receivable_credit=0,
|
|
income_debit=0,
|
|
income_credit=1000,
|
|
unaffected_debit=1000,
|
|
unaffected_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 0)
|
|
self.assertEqual(unaffected_init_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_init_balance['balance'], -1000)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['balance'], 0)
|
|
|
|
# Add another move at the end day of fiscal year
|
|
# to check that it correctly used on report
|
|
self._add_move(
|
|
date=self.fy_date_end,
|
|
receivable_debit=3000,
|
|
receivable_credit=0,
|
|
income_debit=0,
|
|
income_credit=0,
|
|
unaffected_debit=0,
|
|
unaffected_credit=3000
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 0)
|
|
self.assertEqual(unaffected_init_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_init_balance['balance'], -1000)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 4000)
|
|
self.assertEqual(unaffected_fin_balance['balance'], -3000)
|
|
|
|
def test_04_unaffected_account_balance_2_years(self):
|
|
# Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 0)
|
|
self.assertEqual(unaffected_init_balance['credit'], 0)
|
|
self.assertEqual(unaffected_init_balance['balance'], 0)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 0)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 0)
|
|
self.assertEqual(unaffected_fin_balance['balance'], 0)
|
|
|
|
# Add a move at any date 2 years before the balance
|
|
# (to create an historic)
|
|
self._add_move(
|
|
date=self.before_previous_fy_year,
|
|
receivable_debit=0,
|
|
receivable_credit=1000,
|
|
income_debit=1000,
|
|
income_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 1000)
|
|
self.assertEqual(unaffected_init_balance['credit'], 0)
|
|
self.assertEqual(unaffected_init_balance['balance'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 0)
|
|
self.assertEqual(unaffected_fin_balance['balance'], 1000)
|
|
|
|
# Affect the company's result last year
|
|
self._add_move(
|
|
date=self.previous_fy_date_start,
|
|
receivable_debit=1000,
|
|
receivable_credit=0,
|
|
income_debit=0,
|
|
income_credit=0,
|
|
unaffected_debit=0,
|
|
unaffected_credit=1000
|
|
)
|
|
|
|
# Add another move last year to test the initial balance this year
|
|
self._add_move(
|
|
date=self.previous_fy_date_start,
|
|
receivable_debit=0,
|
|
receivable_credit=500,
|
|
income_debit=500,
|
|
income_credit=0,
|
|
unaffected_debit=0,
|
|
unaffected_credit=0
|
|
)
|
|
|
|
# Re Generate the general ledger line
|
|
res_data = self._get_report_lines()
|
|
general_ledger = res_data['general_ledger']
|
|
check_unaffected_account = self.check_account_in_report(
|
|
self.unaffected_account.id, general_ledger)
|
|
self.assertTrue(check_unaffected_account)
|
|
|
|
# Check the initial and final balance
|
|
unaffected_init_balance = self._get_initial_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
unaffected_fin_balance = self._get_final_balance(
|
|
self.unaffected_account.id, general_ledger)
|
|
|
|
self.assertEqual(unaffected_init_balance['debit'], 1500)
|
|
self.assertEqual(unaffected_init_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_init_balance['balance'], 500)
|
|
self.assertEqual(unaffected_fin_balance['debit'], 1500)
|
|
self.assertEqual(unaffected_fin_balance['credit'], 1000)
|
|
self.assertEqual(unaffected_fin_balance['balance'], 500)
|
|
|
|
def test_partner_filter(self):
|
|
partner_1 = self.env.ref('base.res_partner_1')
|
|
partner_2 = self.env.ref('base.res_partner_2')
|
|
partner_3 = self.env.ref('base.res_partner_3')
|
|
partner_4 = self.env.ref('base.res_partner_4')
|
|
partner_1.write({'is_company': False,
|
|
'parent_id': partner_2.id})
|
|
partner_3.write({'is_company': False})
|
|
|
|
expected_list = [partner_2.id, partner_3.id, partner_4.id]
|
|
context = {
|
|
'active_ids': [
|
|
partner_1.id, partner_2.id, partner_3.id, partner_4.id
|
|
],
|
|
'active_model': 'res.partner'
|
|
}
|
|
|
|
wizard = self.env["general.ledger.report.wizard"].with_context(context)
|
|
self.assertEqual(wizard._default_partners(), expected_list)
|
|
|
|
def test_validate_date(self):
|
|
company_id = self.env.ref('base.main_company')
|
|
company_id.write({
|
|
'fiscalyear_last_day': 31,
|
|
'fiscalyear_last_month': 12,
|
|
})
|
|
user = self.env.ref('base.user_root').with_context(
|
|
company_id=company_id.id)
|
|
wizard = self.env["general.ledger.report.wizard"].with_context(
|
|
user=user.id
|
|
)
|
|
self.assertEqual(wizard._init_date_from(),
|
|
time.strftime('%Y') + '-01-01')
|
|
|
|
def test_validate_date_range(self):
|
|
data_type = self.env['date.range.type'].create({
|
|
'name': 'Fiscal year',
|
|
'company_id': False,
|
|
'allow_overlap': False
|
|
})
|
|
|
|
dr = self.env['date.range'].create({
|
|
'name': 'FS2015',
|
|
'date_start': '2018-01-01',
|
|
'date_end': '2018-12-31',
|
|
'type_id': data_type.id,
|
|
})
|
|
|
|
wizard = self.env["general.ledger.report.wizard"].create({
|
|
'date_range_id': dr.id})
|
|
wizard.onchange_date_range_id()
|
|
self.assertEqual(wizard.date_from, date(2018, 1, 1))
|
|
self.assertEqual(wizard.date_to, date(2018, 12, 31))
|