diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 1128ff465fe..4fb78392326 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -505,11 +505,11 @@ class account_move_line(osv.osv): 'amount_residual_currency': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in its currency (maybe different of the company currency)."), 'amount_residual': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in the company currency."), 'currency_id': fields.many2one('res.currency', 'Currency', help="The optional other currency if it is a multi-currency entry."), - 'journal_id': fields.related('move_id', 'journal_id', string='Journal', type='many2one', relation='account.journal', required=True, select=True, readonly=True, + 'journal_id': fields.related('move_id', 'journal_id', string='Journal', type='many2one', relation='account.journal', required=True, select=True, store = { 'account.move': (_get_move_lines, ['journal_id'], 20) }), - 'period_id': fields.related('move_id', 'period_id', string='Period', type='many2one', relation='account.period', required=True, select=True, readonly=True, + 'period_id': fields.related('move_id', 'period_id', string='Period', type='many2one', relation='account.period', required=True, select=True, store = { 'account.move': (_get_move_lines, ['period_id'], 20) }), @@ -565,6 +565,9 @@ class account_move_line(osv.osv): """ Return default account period value """ + context = context or {} + if context.get('period_id', False): + return context['period_id'] account_period_obj = self.pool.get('account.period') ids = account_period_obj.find(cr, uid, context=context) period_id = False @@ -576,7 +579,9 @@ class account_move_line(osv.osv): """ Return journal based on the journal type """ - + context = context or {} + if context.get('journal_id', False): + return context['journal_id'] journal_id = False journal_pool = self.pool.get('account.journal') diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index c62607e12a1..eae8f902d78 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -991,8 +991,8 @@ - - + + @@ -1010,6 +1010,7 @@ + diff --git a/addons/account/static/src/js/account_move_line_quickadd.js b/addons/account/static/src/js/account_move_line_quickadd.js index 2535a888bc9..8eda55876e3 100644 --- a/addons/account/static/src/js/account_move_line_quickadd.js +++ b/addons/account/static/src/js/account_move_line_quickadd.js @@ -91,7 +91,8 @@ openerp.account.quickadd = function (instance) { if (self.current_journal !== null) domain.push(["journal_id", "=", self.current_journal]); if (self.current_period !== null) domain.push(["period_id", "=", self.current_period]); self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal; - self.last_context["period_id"] = self.current_period === null ? false : self.current_period; + if (self.current_period === null) delete self.last_context["period_id"]; + else self.last_context["period_id"] = self.current_period; self.last_context["journal_type"] = self.current_journal_type; self.last_context["currency"] = self.current_journal_currency; self.last_context["analytic_journal_id"] = self.current_journal_analytic;