diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index 1a222b2f83c..59d86351cd6 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -49,7 +49,7 @@ for a particular financial year and for preparation of vouchers there is a modul """, 'website': 'http://www.openerp.com', 'images' : ['images/accounts.jpeg','images/bank_statement.jpeg','images/cash_register.jpeg','images/chart_of_accounts.jpeg','images/customer_invoice.jpeg','images/journal_entries.jpeg'], - 'depends' : ['base_setup', 'product', 'analytic', 'process', 'board', 'edi', 'report'], + 'depends' : ['base_setup', 'product', 'analytic', 'board', 'edi', 'report'], 'data': [ 'security/account_security.xml', 'security/ir.model.access.csv', @@ -114,17 +114,12 @@ for a particular financial year and for preparation of vouchers there is a modul 'partner_view.xml', 'product_view.xml', 'account_assert_test.xml', - 'process/statement_process.xml', - 'process/customer_invoice_process.xml', - 'process/supplier_invoice_process.xml', 'ir_sequence_view.xml', 'company_view.xml', - 'board_account_view.xml', 'edi/invoice_action_data.xml', 'account_bank_view.xml', 'res_config_view.xml', 'account_pre_install.yml', - 'views/report_vat.xml', 'views/report_invoice.xml', 'views/report_trialbalance.xml', @@ -144,20 +139,12 @@ for a particular financial year and for preparation of vouchers there is a modul 'project/views/report_analyticcostledgerquantity.xml', 'project/views/report_analyticcostledger.xml', 'project/views/report_invertedanalyticbalance.xml', - ], - 'js': [ - 'static/src/js/account_move_reconciliation.js', - 'static/src/js/account_move_line_quickadd.js', + 'views/account.xml', ], 'qweb' : [ "static/src/xml/account_move_reconciliation.xml", "static/src/xml/account_move_line_quickadd.xml", ], - 'css':[ - 'static/src/css/account_move_reconciliation.css', - 'static/src/css/account_move_line_quickadd.css', - 'static/src/css/account_bank_and_cash.css', - ], 'demo': [ 'demo/account_demo.xml', 'project/project_demo.xml', diff --git a/addons/account/account.py b/addons/account/account.py index b87caf547ab..aa5d507b3d2 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1944,15 +1944,17 @@ class account_tax(osv.osv): return super(account_tax, self).write(cr, uid, ids, vals, context=context) def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): + if context is None: + context = {} journal_pool = self.pool.get('account.journal') - if context and context.has_key('type'): + if context.get('type'): if context.get('type') in ('out_invoice','out_refund'): args += [('type_tax_use','in',['sale','all'])] elif context.get('type') in ('in_invoice','in_refund'): args += [('type_tax_use','in',['purchase','all'])] - if context and context.has_key('journal_id'): + if context.get('journal_id'): journal = journal_pool.browse(cr, uid, context.get('journal_id')) if journal.type in ('sale', 'purchase'): args += [('type_tax_use','in',[journal.type,'all'])] diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index ce1a146c68f..1b4795f02a8 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -409,9 +409,7 @@ class account_invoice(osv.osv): ''' assert len(ids) == 1, 'This option should only be used for a single id at a time.' self.write(cr, uid, ids, {'sent': True}, context=context) - context2 = context.copy() - context2['active_ids'] = ids - return self.pool['report'].get_action(cr, uid, [], 'account.report_invoice', context=context2) + return self.pool['report'].get_action(cr, uid, [], 'account.report_invoice', context=context) def action_invoice_sent(self, cr, uid, ids, context=None): ''' diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index b521f3ff48c..61c397364b9 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -457,7 +457,7 @@ - + diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index b48e842caf5..729c9d16b7a 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']), ] @@ -1020,10 +1034,14 @@ class account_move_line(osv.osv): part_rec_ids = [rec['reconcile_partial_id'][0] for rec in part_recs] unlink_ids += rec_ids unlink_ids += part_rec_ids + all_moves = obj_move_line.search(cr, uid, ['|',('reconcile_id', 'in', unlink_ids),('reconcile_partial_id', 'in', unlink_ids)]) + all_moves = list(set(all_moves) - set(move_ids)) if unlink_ids: if opening_reconciliation: obj_move_rec.write(cr, uid, unlink_ids, {'opening_reconciliation': False}) obj_move_rec.unlink(cr, uid, unlink_ids) + if all_moves: + obj_move_line.reconcile_partial(cr, uid, all_moves, 'auto',context=context) return True def unlink(self, cr, uid, ids, context=None, check=True): diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 48d6320fbc3..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 @@ + + + + + + @@ -1628,6 +1636,7 @@ +