diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py
index 63c179bf626..2cf8d837157 100644
--- a/addons/account/__openerp__.py
+++ b/addons/account/__openerp__.py
@@ -74,6 +74,7 @@ module named account_voucherss
'wizard/account_use_model_view.xml',
'wizard/account_partner_balance_report_view.xml',
'wizard/account_balance_report_view.xml',
+ 'wizard/account_aged_trial_balance_view.xml',
'project/wizard/project_account_analytic_line_view.xml',
'account_view.xml',
'account_end_fy.xml',
diff --git a/addons/account/account_wizard.xml b/addons/account/account_wizard.xml
index c10bac8d588..5f006d52824 100644
--- a/addons/account/account_wizard.xml
+++ b/addons/account/account_wizard.xml
@@ -71,14 +71,14 @@
-->
-
-
-
+
-
+
diff --git a/addons/account/report/aged_trial_balance.py b/addons/account/report/aged_trial_balance.py
index c13ea96ea50..26e24031c3a 100644
--- a/addons/account/report/aged_trial_balance.py
+++ b/addons/account/report/aged_trial_balance.py
@@ -18,8 +18,8 @@
# along with this program. If not, see .
#
##############################################################################
-
import time
+
import pooler
import rml_parse
from report import report_sxw
@@ -45,7 +45,6 @@ class aged_trial_report(rml_parse.rml_parse):
def _get_lines(self, form):
-
if (form['result_selection'] == 'customer' ):
self.ACCOUNT_TYPE = ['receivable']
elif (form['result_selection'] == 'supplier'):
diff --git a/addons/account/wizard/__init__.py b/addons/account/wizard/__init__.py
index 2a209f291b8..43ace9e1589 100644
--- a/addons/account/wizard/__init__.py
+++ b/addons/account/wizard/__init__.py
@@ -30,7 +30,7 @@ import account_move_journal
import account_journal_select
import account_move_bank_reconcile
import account_subscription_generate
-import wizard_aged_trial_balance
+import account_aged_trial_balance
import account_general_ledger_report
import wizard_third_party_ledger
import account_partner_balance_report
diff --git a/addons/account/wizard/account_aged_trial_balance.py b/addons/account/wizard/account_aged_trial_balance.py
new file mode 100755
index 00000000000..bdcb8af735a
--- /dev/null
+++ b/addons/account/wizard/account_aged_trial_balance.py
@@ -0,0 +1,106 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import time
+import datetime
+from mx.DateTime import *
+
+from osv import osv, fields
+from tools.translate import _
+
+class account_aged_trial_balance(osv.osv_memory):
+
+ _name = 'account.aged.trial.balance'
+ _description = 'Account Aged Trial balance Report'
+
+ _columns = {
+ 'company_id': fields.many2one('res.company', 'Company', required=True),
+ 'period_length':fields.integer('Period length (days)', required=True),
+ 'date1': fields.date('Start of period', required=True),
+ 'result_selection': fields.selection([('customer','Receivable'),
+ ('supplier','Payable'),
+ ('all','Receivable and Payable')],
+ 'Filter on Partners', required=True),
+ 'direction_selection': fields.selection([('past','Past'),
+ ('future','Future')],
+ 'Analysis Direction', required=True),
+ }
+
+ def _get_company(self, cr, uid, ids, context=None):
+ user_obj = self.pool.get('res.users')
+ company_obj = self.pool.get('res.company')
+ if context is None:
+ context = {}
+ user = user_obj.browse(cr, uid, uid, context=context)
+ if user.company_id:
+ return user.company_id.id
+ else:
+ return company_obj.search(cr, uid, [('parent_id', '=', False)])[0]
+
+ _defaults = {
+ 'company_id' : _get_company,
+ 'period_length' : 30,
+ 'date1' : time.strftime('%Y-%m-%d'),
+ 'result_selection' : 'all',
+ 'direction_selection' : 'past',
+ }
+
+ def calc_dates(self, cr, uid, ids, context=None):
+ fiscalyear_obj = self.pool.get('account.fiscalyear')
+ data={}
+ res = {}
+ if context is None:
+ context = {}
+ data['ids'] = context.get('active_ids',[])
+ data['model'] = 'res.partner'
+ data['form'] = self.read(cr, uid, ids, [])[0]
+ data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
+ period_length = data['form']['period_length']
+ if period_length<=0:
+ raise osv.except_osv(_('UserError'), _('You must enter a period length that cannot be 0 or below !'))
+ start = datetime.date.fromtimestamp(time.mktime(time.strptime(data['form']['date1'],"%Y-%m-%d")))
+ start = DateTime(int(start.year),int(start.month),int(start.day))
+ if data['form']['direction_selection'] == 'past':
+ for i in range(5)[::-1]:
+ stop = start - RelativeDateTime(days=period_length)
+ res[str(i)] = {
+ 'name' : str((5-(i+1))*period_length) + '-' + str((5-i)*period_length),
+ 'stop': start.strftime('%Y-%m-%d'),
+ 'start' : stop.strftime('%Y-%m-%d'),
+ }
+ start = stop - RelativeDateTime(days=1)
+ else:
+ for i in range(5):
+ stop = start + RelativeDateTime(days=period_length)
+ res[str(5-(i+1))] = {
+ 'name' : str((i)*period_length)+'-'+str((i+1)*period_length),
+ 'start': start.strftime('%Y-%m-%d'),
+ 'stop' : stop.strftime('%Y-%m-%d'),
+ }
+ start = stop + RelativeDateTime(days=1)
+ data['form'].update(res)
+ return {
+ 'type': 'ir.actions.report.xml',
+ 'report_name': 'account.aged_trial_balance',
+ 'datas': data,
+ }
+
+account_aged_trial_balance()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/wizard/account_aged_trial_balance_view.xml b/addons/account/wizard/account_aged_trial_balance_view.xml
new file mode 100644
index 00000000000..258de38b714
--- /dev/null
+++ b/addons/account/wizard/account_aged_trial_balance_view.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+ Aged Partner Balance
+ account.aged.trial.balance
+ form
+
+
+
+
+
+
+ Aged Partner Balance
+ account.aged.trial.balance
+ ir.actions.act_window
+ form
+ tree,form
+
+ {'record_id':active_id}
+ new
+
+
+
+
+
+
diff --git a/addons/account/wizard/account_general_ledger_report_view.xml b/addons/account/wizard/account_general_ledger_report_view.xml
index dc3462ac307..0790a1654b9 100644
--- a/addons/account/wizard/account_general_ledger_report_view.xml
+++ b/addons/account/wizard/account_general_ledger_report_view.xml
@@ -38,7 +38,7 @@
-
+
diff --git a/addons/account/wizard/wizard_aged_trial_balance.py b/addons/account/wizard/wizard_aged_trial_balance.py
deleted file mode 100755
index d21a64c0bbf..00000000000
--- a/addons/account/wizard/wizard_aged_trial_balance.py
+++ /dev/null
@@ -1,113 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import wizard
-import time
-import datetime
-import pooler
-
-from mx.DateTime import *
-from tools.translate import _
-
-_aged_trial_form = """
-"""
-
-_aged_trial_fields = {
- 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True},
- 'period_length': {'string': 'Period length (days)', 'type': 'integer', 'required': True, 'default': lambda *a:30},
- 'date1': {'string':'Start of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')},
- 'result_selection':{
- 'string':"Filter on Partners",
- 'type':'selection',
- 'selection':[('customer','Receivable'),('supplier','Payable'),('all','Receivable and Payable')],
- 'required':True,
- 'default': lambda *a: 'all',
- },
- 'direction_selection':{
- 'string':"Analysis Direction",
- 'type':'selection',
- 'selection':[('past','Past'),('future','Future')],
- 'required':True,
- 'default': lambda *a: 'past',
- },
-}
-
-def _calc_dates(self, cr, uid, data, context):
- res = {}
- period_length = data['form']['period_length']
- if period_length<=0:
- raise wizard.except_wizard(_('UserError'), _('You must enter a period length that cannot be 0 or below !'))
- start = datetime.date.fromtimestamp(time.mktime(time.strptime(data['form']['date1'],"%Y-%m-%d")))
- start = DateTime(int(start.year),int(start.month),int(start.day))
- if data['form']['direction_selection'] == 'past':
- for i in range(5)[::-1]:
- stop = start - RelativeDateTime(days=period_length)
- res[str(i)] = {
- 'name' : str((5-(i+1))*period_length) + '-' + str((5-i)*period_length),
-
- 'stop': start.strftime('%Y-%m-%d'),
- 'start' : stop.strftime('%Y-%m-%d'),
- }
- start = stop - RelativeDateTime(days=1)
- else:
- for i in range(5):
- stop = start + RelativeDateTime(days=period_length)
- res[str(5-(i+1))] = {
- 'name' : str((i)*period_length)+'-'+str((i+1)*period_length),
- 'start': start.strftime('%Y-%m-%d'),
- 'stop' : stop.strftime('%Y-%m-%d'),
- }
- start = stop + RelativeDateTime(days=1)
- return res
-
-class wizard_report(wizard.interface):
- def _get_defaults(self, cr, uid, data, context):
- fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
- data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
- user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
- if user.company_id:
- company_id = user.company_id.id
- else:
- company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
- data['form']['company_id'] = company_id
- return data['form']
- states = {
- 'init': {
- 'actions': [_get_defaults],
- 'result': {'type':'form', 'arch':_aged_trial_form, 'fields':_aged_trial_fields, 'state':[('end','Cancel', 'gtk-cancel'),('print','Print', 'gtk-ok')]},
- },
- 'print': {
- 'actions': [_calc_dates],
- 'result': {'type':'print', 'report':'account.aged_trial_balance', 'state':'end'},
- },
- }
-wizard_report('account.aged.trial.balance')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: