100 lines
3.5 KiB
ReStructuredText
100 lines
3.5 KiB
ReStructuredText
=========================
|
|
Renew Fiscalyear Scenario
|
|
=========================
|
|
|
|
Imports::
|
|
|
|
>>> import datetime as dt
|
|
|
|
>>> from proteus import Model, Wizard
|
|
>>> from trytond.modules.account.tests.tools import create_fiscalyear
|
|
>>> from trytond.modules.account_invoice.tests.tools import (
|
|
... set_fiscalyear_invoice_sequences)
|
|
>>> from trytond.modules.company.tests.tools import create_company
|
|
>>> from trytond.tests.tools import activate_modules, assertEqual
|
|
|
|
>>> today = dt.date.today()
|
|
|
|
Activate modules::
|
|
|
|
>>> config = activate_modules('account_invoice', create_company)
|
|
|
|
Create fiscal year::
|
|
|
|
>>> InvoiceSequence = Model.get('account.fiscalyear.invoice_sequence')
|
|
>>> fiscalyear = create_fiscalyear(today=today)
|
|
>>> fiscalyear = set_fiscalyear_invoice_sequences(fiscalyear)
|
|
>>> fiscalyear.click('create_period')
|
|
>>> inv_seq, = fiscalyear.invoice_sequences
|
|
>>> seq = inv_seq.out_invoice_sequence
|
|
>>> for period in fiscalyear.periods:
|
|
... seq, = seq.duplicate()
|
|
... _ = inv_seq.duplicate(default={
|
|
... 'period': period.id,
|
|
... 'out_invoice_sequence': seq.id,
|
|
... 'in_invoice_sequence': seq.id,
|
|
... 'out_credit_note_sequence': seq.id,
|
|
... 'in_credit_note_sequence': seq.id,
|
|
... })
|
|
>>> period = fiscalyear.periods.new()
|
|
>>> period.name = 'Adjustment'
|
|
>>> period.start_date = fiscalyear.end_date
|
|
>>> period.end_date = fiscalyear.end_date
|
|
>>> period.type = 'adjustment'
|
|
>>> fiscalyear.save()
|
|
|
|
Set the sequence number::
|
|
|
|
>>> sequence = fiscalyear.move_sequence
|
|
>>> sequence.number_next = 10
|
|
>>> sequence.save()
|
|
|
|
>>> for i, seq in enumerate(fiscalyear.invoice_sequences):
|
|
... seq.out_invoice_sequence.number_next = i
|
|
... seq.out_invoice_sequence.save()
|
|
|
|
Renew fiscal year using the wizard::
|
|
|
|
>>> renew_fiscalyear = Wizard('account.fiscalyear.renew')
|
|
>>> renew_fiscalyear.form.reset_sequences = False
|
|
>>> renew_fiscalyear.execute('create_')
|
|
>>> new_fiscalyear, = renew_fiscalyear.actions[0]
|
|
>>> len(new_fiscalyear.periods)
|
|
12
|
|
>>> int(new_fiscalyear.move_sequence.number_next)
|
|
10
|
|
>>> [int(seq.out_invoice_sequence.number_next)
|
|
... for seq in fiscalyear.invoice_sequences]
|
|
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
|
|
|
|
Renew fiscal year resetting sequences::
|
|
|
|
>>> renew_fiscalyear = Wizard('account.fiscalyear.renew')
|
|
>>> renew_fiscalyear.form.reset_sequences = True
|
|
>>> renew_fiscalyear.execute('create_')
|
|
>>> new_fiscalyear, = renew_fiscalyear.actions[0]
|
|
>>> int(new_fiscalyear.move_sequence.number_next)
|
|
1
|
|
>>> [int(seq.out_invoice_sequence.number_next)
|
|
... for seq in new_fiscalyear.invoice_sequences]
|
|
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
|
|
|
|
|
Set the sequence name::
|
|
|
|
>>> for seq in new_fiscalyear.invoice_sequences:
|
|
... seq.out_invoice_sequence.name = ('Sequence %s' %
|
|
... new_fiscalyear.name)
|
|
... seq.out_invoice_sequence.save()
|
|
|
|
Renew fiscalyear and test sequence name is updated::
|
|
|
|
>>> renew_fiscalyear = Wizard('account.fiscalyear.renew')
|
|
>>> renew_fiscalyear.form.reset_sequences = True
|
|
>>> renew_fiscalyear.execute('create_')
|
|
>>> new_fiscalyear, = renew_fiscalyear.actions[0]
|
|
>>> for sequence in new_fiscalyear.invoice_sequences:
|
|
... assertEqual(
|
|
... sequence.out_invoice_sequence.name,
|
|
... 'Sequence %s' % new_fiscalyear.name)
|