diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index b48e842caf5..446ebc83703 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -430,6 +430,19 @@ class account_move_line(osv.osv): elif line.reconcile_partial_id: res[line.id] = str(line.reconcile_partial_id.name) return res + + def _get_move_from_reconcile(self, cr, uid, ids, context=None): + move = {} + for r in self.pool.get('account.move.reconcile').browse(cr, uid, ids, context=context): + for line in r.line_partial_ids: + move[line.move_id.id] = True + for line in r.line_id: + move[line.move_id.id] = True + move_line_ids = [] + if move: + move_line_ids = self.pool.get('account.move.line').search(cr, uid, [('journal_id','in',move.keys())], context=context) + return move_line_ids + _columns = { 'name': fields.char('Name', size=64, required=True), @@ -445,7 +458,8 @@ class account_move_line(osv.osv): 'statement_id': fields.many2one('account.bank.statement', 'Statement', help="The bank statement used for bank reconciliation", select=1), 'reconcile_id': fields.many2one('account.move.reconcile', 'Reconcile', readonly=True, ondelete='set null', select=2), 'reconcile_partial_id': fields.many2one('account.move.reconcile', 'Partial Reconcile', readonly=True, ondelete='set null', select=2), - 'reconcile': fields.function(_get_reconcile, type='char', string='Reconcile Ref'), + 'reconcile': fields.function(_get_reconcile, type='char', string='Reconcile Ref', store={ + 'account.move.line': (lambda self, cr, uid, ids, c={}: ids, ['reconcile_id','reconcile_partial_id'], 50),'account.move.reconcile': (_get_move_from_reconcile, None, 50)}), 'amount_currency': fields.float('Amount Currency', help="The amount expressed in an optional other currency if it is a multi-currency entry.", digits_compute=dp.get_precision('Account')), 'amount_residual_currency': fields.function(_amount_residual, string='Residual Amount in Currency', 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."), @@ -628,7 +642,7 @@ class account_move_line(osv.osv): (_check_date, 'The date of your Journal Entry is not in the defined period! You should change the date or remove this constraint from the journal.', ['date']), (_check_currency, 'The selected account of your Journal Entry forces to provide a secondary currency. You should remove the secondary currency on the account or select a multi-currency view on the journal.', ['currency_id']), (_check_currency_and_amount, "You cannot create journal items with a secondary currency without recording both 'currency' and 'amount currency' field.", ['currency_id','amount_currency']), - (_check_currency_amount, 'The amount expressed in the secondary currency must be positive when the journal item is a debit and negative when if it is a credit.', ['amount_currency']), + (_check_currency_amount, 'The amount expressed in the secondary currency must be positive when account is debited and negative when account is credited.', ['amount_currency']), (_check_currency_company, "You cannot provide a secondary currency if it is the same than the company one." , ['currency_id']), ] diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index c29371e4c44..8e2cc6452c0 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -384,6 +384,7 @@ + @@ -881,6 +882,7 @@ + @@ -891,6 +893,12 @@ + + + + + + diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index 6a58bc7f77e..a11b1089dec 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -97,7 +97,7 @@ - + @@ -127,7 +127,7 @@ - +

Accounting-related settings are managed on

diff --git a/addons/account/res_config.py b/addons/account/res_config.py index 8980a31927e..65f38d6e26b 100644 --- a/addons/account/res_config.py +++ b/addons/account/res_config.py @@ -259,6 +259,12 @@ class account_config_settings(osv.osv_memory): def onchange_tax_rate(self, cr, uid, ids, rate, context=None): return {'value': {'purchase_tax_rate': rate or False}} + def onchange_multi_currency(self, cr, uid, ids, group_multi_currency, context=None): + res = {} + if not group_multi_currency: + res['value'] = {'income_currency_exchange_account_id': False, 'expense_currency_exchange_account_id': False} + return res + def onchange_start_date(self, cr, uid, id, start_date): if start_date: start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d") diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index 8a5b1978ecb..115566e9ab5 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -122,7 +122,7 @@