Files
tradon/modules/account/tests/scenario_close_fiscalyear.rst
2026-03-14 09:42:12 +00:00

138 lines
4.1 KiB
ReStructuredText

=================================
Account Close Fiscalyear Scenario
=================================
Imports::
>>> import datetime as dt
>>> from decimal import Decimal
>>> from dateutil.relativedelta import relativedelta
>>> from proteus import Model, Wizard
>>> from trytond.modules.account.tests.tools import (
... create_chart, create_fiscalyear, get_accounts)
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules
>>> today = dt.date.today()
>>> last_year = today - relativedelta(years=1)
Activate modules::
>>> config = activate_modules('account', create_company, create_chart)
>>> Account = Model.get('account.account')
>>> AccountType = Model.get('account.account.type')
>>> Journal = Model.get('account.journal')
>>> Journal = Model.get('account.journal')
>>> Move = Model.get('account.move')
>>> Party = Model.get('party.party')
>>> Period = Model.get('account.period')
>>> Sequence = Model.get('ir.sequence')
Create fiscal year::
>>> fiscalyear = create_fiscalyear(today=last_year)
>>> fiscalyear.click('create_period')
>>> period = fiscalyear.periods[0]
Get accounts::
>>> accounts = get_accounts()
Prepare the closing settings for fiscalyear close::
>>> journal_closing = Journal()
>>> journal_closing.name = 'Closing'
>>> journal_closing.code = 'CLO'
>>> journal_closing.type = 'situation'
>>> journal_closing.save()
>>> period_closing = Period()
>>> period_closing.name = 'Closing'
>>> period_closing.start_date = fiscalyear.end_date
>>> period_closing.end_date = fiscalyear.end_date
>>> period_closing.fiscalyear = fiscalyear
>>> period_closing.type = 'adjustment'
>>> period_closing.save()
>>> account_pl, = Account.find([('code', '=', '3.2.1')])
Create children accounts::
>>> receivable_customer = Account()
>>> receivable_customer.name = "Customer Receivable"
>>> receivable_customer.parent = accounts['receivable']
>>> receivable_customer.save()
Create parties::
>>> customer = Party(name="Customer")
>>> customer.save()
Create and post a move using children accounts::
>>> journal_revenue, = Journal.find([
... ('code', '=', 'REV'),
... ])
>>> move = Move()
>>> move.period = period
>>> move.journal = journal_revenue
>>> move.date = period.start_date
>>> line = move.lines.new()
>>> line.account = accounts['revenue']
>>> line.credit = Decimal(42)
>>> line = move.lines.new()
>>> line.account = receivable_customer
>>> line.debit = Decimal(21)
>>> line.party = customer
>>> line = move.lines.new()
>>> line.account = accounts['receivable']
>>> line.debit = Decimal(21)
>>> line.party = customer
>>> move.save()
>>> move.click('post')
Balance non deferral::
>>> balance_non_deferral = Wizard('account.fiscalyear.balance_non_deferral')
>>> balance_non_deferral.form.fiscalyear = fiscalyear
>>> balance_non_deferral.form.journal = journal_closing
>>> balance_non_deferral.form.period = period_closing
>>> balance_non_deferral.form.credit_account = account_pl
>>> balance_non_deferral.form.debit_account = account_pl
>>> balance_non_deferral.execute('balance')
>>> move, = Move.find([('state', '=', 'draft')])
>>> move.click('post')
Renew fiscalyear using the wizard::
>>> renew_fiscalyear = Wizard('account.fiscalyear.renew')
>>> renew_fiscalyear.form.reset_sequences = False
>>> renew_fiscalyear.execute('create_')
Check receivable balance before closing fiscalyear::
>>> accounts['receivable'].reload()
>>> accounts['receivable'].balance
Decimal('42.00')
>>> receivable_customer.reload()
>>> receivable_customer.balance
Decimal('21.00')
Close fiscalyear::
>>> fiscalyear.click('close')
>>> fiscalyear.state
'closed'
Check receivable amounts after closing fiscalyear::
>>> accounts['receivable'].reload()
>>> accounts['receivable'].balance
Decimal('42.00')
>>> receivable_customer.reload()
>>> receivable_customer.balance
Decimal('21.00')