diff --git a/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py b/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py index 1a3ddca2..ef079860 100644 --- a/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py +++ b/account_financial_report_webkit/wizard/aged_partner_balance_wizard.py @@ -18,7 +18,10 @@ # along with this program. If not, see . # ############################################################################## +from datetime import date from openerp.osv import orm, fields +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DATE_FORMAT +from openerp.tools.translate import _ class AccountAgedTrialBalance(orm.TransientModel): @@ -31,6 +34,35 @@ class AccountAgedTrialBalance(orm.TransientModel): _name = "account.aged.trial.balance.webkit" _description = "Aged partner balanced" + def _get_current_fiscalyear(self, cr, uid, context=None): + user_obj = self.pool['res.users'] + company = user_obj.browse(cr, uid, uid, context=context).company_id + fyear_obj = self.pool['account.period'] + today = date.today().strftime(DATE_FORMAT) + fyear_ids = fyear_obj.search( + cr, uid, + [('date_start', '>=', today), + ('date_stop', '<=', today), + ('company_id', '=', company.id)], + limit=1, + context=context) + if fyear_ids: + return fyear_ids[0] + + def _get_first_period(self, cr, uid, context=None): + user_obj = self.pool['res.users'] + company = user_obj.browse(cr, uid, uid, context=context).company_id + period_obj = self.pool['account.period'] + period_ids = period_obj.search(cr, uid, + [('special', '=', False), + ('company_id', '=', company.id)], + limit=1, + order='date_start ASC', + context=context) + if not period_ids: + raise orm.except_orm(_('Error'), _('No period found')) + return period_ids[0] + _columns = { 'filter': fields.selection( [('filter_period', 'Periods')], @@ -40,6 +72,8 @@ class AccountAgedTrialBalance(orm.TransientModel): _defaults = { 'filter': 'filter_period', + 'fiscalyear_id': _get_current_fiscalyear, + 'period_from': _get_first_period, } def _print_report(self, cr, uid, ids, data, context=None):