From 2edf982e86483a559ece30effc6356afb4bab40b Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Tue, 31 Aug 2010 09:15:32 +0530 Subject: [PATCH] [IMP] Account: Creation of analytic entries on cash statements bzr revid: mra@mra-laptop-20100831034532-1uq509mcuil21vtl --- addons/account/account_cash_statement.py | 28 +++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py index 8ac8d68ca6c..1b2903ca7a6 100644 --- a/addons/account/account_cash_statement.py +++ b/addons/account/account_cash_statement.py @@ -344,6 +344,7 @@ class account_cash_statement(osv.osv): res_users_obj = self.pool.get('res.users') account_move_obj = self.pool.get('account.move') account_move_line_obj = self.pool.get('account.move.line') + account_analytic_line_obj = self.pool.get('account.analytic.line') account_bank_statement_line_obj = self.pool.get('account.bank.statement.line') company_currency_id = res_users_obj.browse(cr, uid, uid, context=context).company_id.currency_id.id @@ -372,6 +373,10 @@ class account_cash_statement(osv.osv): # In line we get reconcile_id on bank.ste.rec. # in bank stat.rec we get line_new_ids on bank.stat.rec.line for move in st.line_ids: + if move.analytic_account_id: + if not st.journal_id.analytic_journal_id: + raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (st.journal_id.name,)) + context.update({'date':move.date}) move_id = account_move_obj.create(cr, uid, { 'journal_id': st.journal_id.id, @@ -410,6 +415,7 @@ class account_cash_statement(osv.osv): 'journal_id': st.journal_id.id, 'period_id': st.period_id.id, 'currency_id': st.currency.id, + 'analytic_account_id': move.analytic_account_id and move.analytic_account_id.id or False } amount = res_currency_obj.compute(cr, uid, st.currency.id, @@ -430,8 +436,28 @@ class account_cash_statement(osv.osv): move.account_id.currency_id.id, amount, context=context, account=acc_cur) val['amount_currency'] = amount_cur + move_line_id = account_move_line_obj.create(cr, uid, val , context=context) + torec.append(move_line_id) - torec.append(account_move_line_obj.create(cr, uid, val , context=context)) + if move.analytic_account_id: + anal_val = {} + amt = (val['credit'] or 0.0) - (val['debit'] or 0.0) + anal_val = { + 'name': val['name'], + 'ref': val['ref'], + 'date': val['date'], + 'amount': amt, + 'account_id': val['analytic_account_id'], + 'currency_id': val['currency_id'], + 'general_account_id': val['account_id'], + 'journal_id': st.journal_id.analytic_journal_id.id, + 'period_id': val['period_id'], + 'user_id': uid, + 'move_id': move_line_id + } + if val.get('amount_currency', False): + anal_val['amount_currency'] = val['amount_currency'] + account_analytic_line_obj.create(cr, uid, anal_val, context=context) if move.reconcile_id and move.reconcile_id.line_new_ids: for newline in move.reconcile_id.line_new_ids: