@@ -681,7 +681,6 @@ class account_fiscalyear(osv.osv):
|
||||
_inherit = "account.fiscalyear"
|
||||
_description = "Fiscal Year"
|
||||
_columns = {
|
||||
'start_journal_period_id':fields.many2one('account.journal.period','New Entries Journal'),
|
||||
'end_journal_period_id':fields.many2one('account.journal.period','End of Year Entries Journal', readonly=True),
|
||||
}
|
||||
|
||||
|
||||
@@ -3,13 +3,17 @@
|
||||
<data>
|
||||
|
||||
<record id="action_account_period_tree" model="ir.actions.act_window">
|
||||
<field name="name">Close Period</field>
|
||||
<field name="name">Close a Period</field>
|
||||
<field name="res_model">account.period</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="view_id" ref="view_account_period_tree"/>
|
||||
</record>
|
||||
<menuitem action="action_account_period_tree" id="menu_action_account_period_close_tree" parent="account.menu_account_end_year_treatments"/>
|
||||
<menuitem
|
||||
action="action_account_period_tree"
|
||||
id="menu_action_account_period_close_tree"
|
||||
parent="account.menu_account_end_year_treatments"
|
||||
sequence="0"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -558,7 +558,7 @@ class account_move_line(osv.osv):
|
||||
GROUP BY account_id,reconcile_id')
|
||||
r = cr.fetchall()
|
||||
#TODO: move this check to a constraint in the account_move_reconcile object
|
||||
if len(r) != 1:
|
||||
if (len(r) != 1) and context.get('same_account', True):
|
||||
raise osv.except_osv(_('Error'), _('Entries are not of the same account or already reconciled ! '))
|
||||
if not unrec_lines:
|
||||
raise osv.except_osv(_('Error'), _('Entry is already reconciled'))
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<field name="code" select="1"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_stop"/>
|
||||
<field name="start_journal_period_id"/>
|
||||
<field name="end_journal_period_id"/>
|
||||
<separator colspan="4" string="Periods"/>
|
||||
<field colspan="4" name="period_ids" nolabel="1" widget="one2many_list">
|
||||
|
||||
@@ -9,13 +9,27 @@
|
||||
<!-- close year, period, journal -->
|
||||
<wizard id="wizard_fiscalyear_close" menu="False" model="account.fiscalyear" name="account.fiscalyear.close" string="Generate Fiscal Year Opening Entries"/>
|
||||
|
||||
<menuitem action="wizard_fiscalyear_close" id="menu_wizard_fy_close" parent="menu_account_end_year_treatments" sequence="11" type="wizard"/>
|
||||
<menuitem
|
||||
action="wizard_fiscalyear_close"
|
||||
id="menu_wizard_fy_close"
|
||||
parent="menu_account_end_year_treatments"
|
||||
type="wizard"
|
||||
sequence="1"/>
|
||||
|
||||
<wizard id="wizard_fiscalyear_close_state" menu="False" model="account.fiscalyear" name="account.fiscalyear.close.state" string="Close a Fiscal Year"/>
|
||||
<menuitem action="wizard_fiscalyear_close_state" id="menu_wizard_fy_close_state" parent="menu_account_end_year_treatments" type="wizard"/>
|
||||
|
||||
<wizard id="wizard_open_closed_fiscalyear" menu="False" model="account.fiscalyear" name="account.open_closed_fiscalyear" string="Open a Closed Fiscal Year"/>
|
||||
<menuitem action="wizard_open_closed_fiscalyear" id="menu_wizard_open_closed_fy" parent="account.menu_account_end_year_treatments" sequence="12" type="wizard"/>
|
||||
<wizard
|
||||
id="wizard_open_closed_fiscalyear"
|
||||
menu="False"
|
||||
model="account.fiscalyear"
|
||||
name="account.open_closed_fiscalyear"
|
||||
string="Cancel Opening Entries"/>
|
||||
<menuitem
|
||||
action="wizard_open_closed_fiscalyear"
|
||||
id="menu_wizard_open_closed_fy"
|
||||
sequence="2"
|
||||
parent="account.menu_account_end_year_treatments" type="wizard"/>
|
||||
|
||||
<wizard id="wizard_period_close" model="account.period" name="account.period.close" string="Close a Period"/>
|
||||
|
||||
|
||||
@@ -107,8 +107,8 @@ class account_invoice(osv.osv):
|
||||
paid_amt = 0.0
|
||||
to_pay = inv.amount_total
|
||||
for lines in inv.move_lines:
|
||||
paid_amt = paid_amt + lines.credit + lines.debit
|
||||
res[inv.id] = to_pay - paid_amt
|
||||
paid_amt = paid_amt - lines.credit + lines.debit
|
||||
res[inv.id] = to_pay - abs(paid_amt)
|
||||
return res
|
||||
|
||||
def _get_lines(self, cr, uid, ids, name, arg, context=None):
|
||||
|
||||
@@ -29,7 +29,9 @@ _transaction_form = '''<?xml version="1.0"?>
|
||||
<form string="Close Fiscal Year with new entries">
|
||||
<field name="fy_id"/>
|
||||
<field name="fy2_id"/>
|
||||
<field name="report_name" colspan="3"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="period_id"/>
|
||||
<field name="report_name" colspan="4"/>
|
||||
|
||||
<separator string="Are you sure you want to create entries?" colspan="4"/>
|
||||
<field name="sure"/>
|
||||
@@ -37,6 +39,8 @@ _transaction_form = '''<?xml version="1.0"?>
|
||||
|
||||
_transaction_fields = {
|
||||
'fy_id': {'string':'Fiscal Year to close', 'type':'many2one', 'relation': 'account.fiscalyear','required':True, 'domain':[('state','=','draft')]},
|
||||
'journal_id': {'string':'Opening Entries Journal', 'type':'many2one', 'relation': 'account.journal','required':True},
|
||||
'period_id': {'string':'Opening Entries Period', 'type':'many2one', 'relation': 'account.period','required':True, 'domain':"[('fiscalyear_id','=',fy2_id)]"},
|
||||
'fy2_id': {'string':'New Fiscal Year', 'type':'many2one', 'relation': 'account.fiscalyear', 'domain':[('state','=','draft')], 'required':True},
|
||||
'report_name': {'string':'Name of new entries', 'type':'char', 'size': 64, 'required':True},
|
||||
'sure': {'string':'Check this box', 'type':'boolean'},
|
||||
@@ -53,18 +57,15 @@ def _data_save(self, cr, uid, data, context):
|
||||
|
||||
fy_id = data['form']['fy_id']
|
||||
new_fyear = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id'])
|
||||
start_jp = new_fyear.start_journal_period_id
|
||||
|
||||
periods_fy2 = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id']).period_ids
|
||||
periods_fy2 = new_fyear.period_ids
|
||||
if not periods_fy2:
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('There are no periods defined on New Fiscal Year.'))
|
||||
period=periods_fy2[0]
|
||||
if not start_jp:
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('The new fiscal year should have a journal for new entries define on it'))
|
||||
|
||||
new_journal = start_jp.journal_id
|
||||
new_journal = data['form']['journal_id']
|
||||
new_journal = pool.get('account.journal').browse(cr, uid, new_journal, context=context)
|
||||
|
||||
if not new_journal.default_credit_account_id or not new_journal.default_debit_account_id:
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
@@ -160,13 +161,15 @@ def _data_save(self, cr, uid, data, context):
|
||||
ids = pool.get('account.move.line').search(cr, uid, [('journal_id','=',new_journal.id),
|
||||
('period_id.fiscalyear_id','=',new_fyear.id)])
|
||||
|
||||
context['same_account'] = False
|
||||
pool.get('account.move.line').reconcile(cr, uid, ids, context=context)
|
||||
|
||||
new_fyear = pool.get('account.fiscalyear').browse(cr, uid, data['form']['fy2_id'])
|
||||
start_jp = new_fyear.start_journal_period_id
|
||||
cr.execute('UPDATE account_fiscalyear ' \
|
||||
'SET end_journal_period_id = %s ' \
|
||||
'WHERE id = %s', (start_jp and start_jp.id or None, fy_id))
|
||||
new_period = data['form']['period_id']
|
||||
ids = pool.get('account.journal.period').search(cr, uid, [('journal_id','=',new_journal.id),('period_id','=',new_period)])
|
||||
if ids:
|
||||
cr.execute('UPDATE account_fiscalyear ' \
|
||||
'SET end_journal_period_id = %s ' \
|
||||
'WHERE id = %s', (ids[0], new_fyear.id))
|
||||
return {}
|
||||
|
||||
class wiz_journal_close(wizard.interface):
|
||||
|
||||
@@ -27,7 +27,7 @@ from tools.translate import _
|
||||
|
||||
form = """<?xml version="1.0"?>
|
||||
<form string="Choose Fiscal Year">
|
||||
<field name="fyear_id" domain="[('state','=','done')]"/>
|
||||
<field name="fyear_id" domain="[('state','=','draft')]"/>
|
||||
</form>
|
||||
"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user