diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py index 071c010add1..8fe860099bd 100644 --- a/addons/account/account_cash_statement.py +++ b/addons/account/account_cash_statement.py @@ -171,7 +171,35 @@ class account_cash_statement(osv.osv): return result + def _compute_cash_all(self, cr, uid, ids, fieldnames, args, context=None): + result = dict() + + for record in self.browse(cr, uid, ids, context=context): + result[record.id] = { + 'cash_journal_id' : False, + 'cash_register_id' : False, + 'cash_control' : False, + } + for st in self.browse(cr, uid, ids, context=context): + if st.journal_id.cash_control == True: + result[record.id]['cash_control'] = True + result[record.id]['cash_journal_id'] = st.journal_id.id + result[record.id]['cash_register_id'] = st.id + return result + + _columns = { + 'cash_control' : fields.function(_compute_cash_all, + multi='cash', + type='boolean', string='Has Cash Control'), + 'cash_journal_id' : fields.function(_compute_cash_all, + multi='cash', + type='many2one', relation='account.journal', + string='Cash Journal', store=True), + 'cash_register_id' : fields.function(_compute_cash_all, + multi='cash', + type='many2one', relation='account.bank.statement', + string='Cash Register', store=True), 'total_entry_encoding': fields.function(_get_sum_entry_encoding, string="Total Transactions", store = { 'account.bank.statement': (lambda self, cr, uid, ids, context=None: ids, ['line_ids','move_line_ids'], 10), @@ -185,6 +213,28 @@ class account_cash_statement(osv.osv): 'user_id': fields.many2one('res.users', 'Responsible', required=False), 'difference' : fields.function(_compute_difference, method=True, string="Difference", type="float", help="Difference between the theoretical closing balance and the real closing balance."), 'last_closing_balance' : fields.function(_compute_last_closing_balance, method=True, string='Last Closing Balance', type='float'), + 'cash_register_balance_end_real' : fields.related('cash_register_id', 'balance_end_real', + type='float', + digits_compute=dp.get_precision('Account'), + string="Ending Balance", + help="Total of closing cash control lines.", + readonly=True), + 'cash_register_balance_start' : fields.related('cash_register_id', 'balance_start', + type='float', + digits_compute=dp.get_precision('Account'), + string="Starting Balance", + help="Total of opening cash control lines.", + readonly=True), + 'cash_register_total_entry_encoding' : fields.related('cash_register_id', 'total_entry_encoding', + string='Total Cash Transaction', + readonly=True, + help="Total of all paid sale orders"), + 'cash_register_balance_end' : fields.related('cash_register_id', 'balance_end', + type='float', + digits_compute=dp.get_precision('Account'), + string="Theoretical Closing Balance", + help="Sum of opening balance and transactions.", + readonly=True), } _defaults = { 'state': 'draft', diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index bdad02c252d..4a57559aa5d 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -2264,7 +2264,6 @@ - @@ -2281,7 +2280,7 @@ - + @@ -2291,7 +2290,7 @@ - + @@ -2300,7 +2299,7 @@ - +