[MERGE]: Merged with addons
[odoo/odoo.git] / addons / account / account_bank_statement.py
index 66a0f5d..cf8bb51 100644 (file)
@@ -106,13 +106,13 @@ class account_bank_statement(osv.osv):
         'balance_start': fields.float('Starting Balance', digits_compute=dp.get_precision('Account'),
             states={'confirm':[('readonly',True)]}),
         'balance_end_real': fields.float('Ending Balance', digits_compute=dp.get_precision('Account'),
-            states={'confirm': [('readonly', True)]}),
+            states={'confirm': [('readonly', True)]}, help="Computed using the cash control lines"),
         'balance_end': fields.function(_end_balance,
             store = {
                 'account.bank.statement': (lambda self, cr, uid, ids, c={}: ids, ['line_ids','move_line_ids','balance_start'], 10),
                 'account.bank.statement.line': (_get_statement, ['amount'], 10),
             },
-            string="Computed Balance", help='Balance as calculated based on Starting Balance and transaction lines'),
+            string="Computed Balance", help='Balance as calculated based on Opening Balance and transaction lines'),
         'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
         'line_ids': fields.one2many('account.bank.statement.line',
             'statement_id', 'Statement lines',
@@ -128,6 +128,7 @@ class account_bank_statement(osv.osv):
         'currency': fields.function(_currency, string='Currency',
             type='many2one', relation='res.currency'),
         'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'),
+        'cash_control': fields.related('journal_id', 'cash_control' , type='boolean', relation='account.journal',string='Cash control'),
     }
 
     _defaults = {
@@ -450,22 +451,25 @@ class account_bank_statement(osv.osv):
     def _compute_balance_end_real(self, cr, uid, journal_id, context=None):
         res = False
         if journal_id:
-            cr.execute('SELECT balance_end_real \
-                    FROM account_bank_statement \
-                    WHERE journal_id = %s AND NOT state = %s \
-                    ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft'))
-            res = cr.fetchone()
+            journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+            if journal.with_last_closing_balance:
+                cr.execute('SELECT balance_end_real \
+                      FROM account_bank_statement \
+                      WHERE journal_id = %s AND NOT state = %s \
+                      ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft'))
+                res = cr.fetchone()
         return res and res[0] or 0.0
 
     def onchange_journal_id(self, cr, uid, statement_id, journal_id, context=None):
         if not journal_id:
             return {}
         balance_start = self._compute_balance_end_real(cr, uid, journal_id, context=context)
-
-        journal_data = self.pool.get('account.journal').read(cr, uid, journal_id, ['company_id', 'currency'], context=context)
-        company_id = journal_data['company_id']
-        currency_id = journal_data['currency'] or self.pool.get('res.company').browse(cr, uid, company_id[0], context=context).currency_id.id
-        return {'value': {'balance_start': balance_start, 'company_id': company_id, 'currency': currency_id}}
+        journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
+        currency = journal.currency or journal.company_id.currency_id
+        res = {'balance_start': balance_start, 'company_id': journal.company_id.id, 'currency': currency.id}
+        if journal.type == 'cash':
+            res['cash_control'] = journal.cash_control
+        return {'value': res}
 
     def unlink(self, cr, uid, ids, context=None):
         stat = self.read(cr, uid, ids, ['state'], context=context)
@@ -547,7 +551,7 @@ class account_bank_statement_line(osv.osv):
     _name = "account.bank.statement.line"
     _description = "Bank Statement Line"
     _columns = {
-        'name': fields.char('OBI', required=True, help="Originator to Beneficiary Information"),
+        'name': fields.char('Description', required=True),
         'date': fields.date('Date', required=True),
         'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
         'type': fields.selection([