From 56cfae3a8bebd50ae4c774c01477b825158fc08d Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sun, 13 May 2012 14:08:12 +0200 Subject: [PATCH] [IMP] setting closing cash position on all journals which does not requires control bzr revid: fp@openerp.com-20120513120812-yabr9ngdxh32xk0n --- addons/account/account_bank_statement.py | 4 ---- addons/account/account_cash_statement.py | 2 -- addons/point_of_sale/point_of_sale.py | 12 ++++++++++-- addons/point_of_sale/point_of_sale_view.xml | 1 + 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 03523348c6b..6b189ed2920 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -349,15 +349,11 @@ class account_bank_statement(osv.osv): return self.write(cr, uid, done, {'state':'draft'}, context=context) def _compute_balance_end_real(self, cr, uid, journal_id, context=None): - 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() - - print "res: %r" % (res,) - return res and res[0] or 0.0 def onchange_journal_id(self, cr, uid, statement_id, journal_id, context=None): diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py index d46f14b1607..cf88fff2041 100644 --- a/addons/account/account_cash_statement.py +++ b/addons/account/account_cash_statement.py @@ -77,7 +77,6 @@ class account_cash_statement(osv.osv): Set starting and ending balances according to pieces count """ res = {} - print 'Updating' for statement in self.browse(cr, uid, ids, context=context): if statement.journal_id.type not in ('cash',): continue @@ -90,7 +89,6 @@ class account_cash_statement(osv.osv): 'balance_end_real': end, } res[statement.id] = data - print statement.id, data super(account_cash_statement, self).write(cr, uid, [statement.id], data, context=context) return res diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index 1bbf92825d5..fc362f5a820 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -311,6 +311,12 @@ class pos_session(osv.osv): return True def wkf_action_closing_control(self, cr, uid, ids, context=None): + for session in self.browse(cr, uid, ids, context=context): + for statement in session.statement_ids: + if not statement.journal_id.closing_control: + if statement.balance_end<>statement.balance_end_real: + self.pool.get('account.bank.statement').write(cr, uid, + [statement.id], {'balance_end_real': statement.balance_end}) return self.write(cr, uid, ids, {'state' : 'closing_control', 'stop_at' : time.strftime('%Y-%m-%d %H:%M:%S')}, context=context) def wkf_action_close(self, cr, uid, ids, context=None): @@ -319,8 +325,10 @@ class pos_session(osv.osv): for record in self.browse(cr, uid, ids, context=context): for st in record.statement_ids: if abs(st.difference) > st.journal_id.amount_authorized_diff: - raise osv.except_osv( _('Error !'), - _("Your ending balance is too different from the theorical cash closing (%.2f), the maximum allowed is: %.2f.") % (st.difference, st.journal_id.amount_authorized_diff)) + # The pos manager can close statements with maximums. + if not self.pool.get('ir.model.access').check_groups(cr, uid, "point_of_sale.group_pos_manager"): + raise osv.except_osv( _('Error !'), + _("Your ending balance is too different from the theorical cash closing (%.2f), the maximum allowed is: %.2f. You can contact your manager to force it.") % (st.difference, st.journal_id.amount_authorized_diff)) if st.difference: if st.difference > 0.0: name= _('Point of Sale Profit') diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index c0e06a91784..c72d0c53c7d 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -923,6 +923,7 @@ +