From 9dd3e6476f5cbf974c4a4dfc799f4c2e2052d74b Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Thu, 9 Aug 2012 23:23:11 +0200 Subject: [PATCH] [IMP] PoS backend bzr revid: fp@tinyerp.com-20120809212311-q2b86eww9ppvdv8s --- addons/account/account_cash_statement.py | 2 +- addons/point_of_sale/__openerp__.py | 1 - addons/point_of_sale/point_of_sale.py | 36 ++-- addons/point_of_sale/point_of_sale_data.xml | 2 +- addons/point_of_sale/point_of_sale_view.xml | 170 +++++++++--------- .../static/src/js/pos_widgets.js | 2 +- addons/point_of_sale/wizard/__init__.py | 1 - .../wizard/pos_close_statement.py | 76 -------- .../wizard/pos_close_statement.xml | 45 ----- .../wizard/pos_session_opening.py | 40 ++++- .../wizard/pos_session_opening.xml | 50 ++++-- 11 files changed, 173 insertions(+), 252 deletions(-) delete mode 100644 addons/point_of_sale/wizard/pos_close_statement.py delete mode 100644 addons/point_of_sale/wizard/pos_close_statement.xml diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py index 2bb89a84cdc..9af0dcf60f4 100644 --- a/addons/account/account_cash_statement.py +++ b/addons/account/account_cash_statement.py @@ -169,7 +169,7 @@ class account_cash_statement(osv.osv): return result _columns = { - 'total_entry_encoding': fields.function(_get_sum_entry_encoding, string="Total Cash Transactions", + '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), 'account.bank.statement.line': (_get_statement_from_line, ['amount'], 10), diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py index 9d985d40408..d08a8163be6 100644 --- a/addons/point_of_sale/__openerp__.py +++ b/addons/point_of_sale/__openerp__.py @@ -51,7 +51,6 @@ Main features: 'wizard/pos_confirm.xml', 'wizard/pos_discount.xml', 'wizard/pos_open_statement.xml', - 'wizard/pos_close_statement.xml', 'wizard/pos_payment_report_user_view.xml', 'wizard/pos_sales_user.xml', 'wizard/pos_receipt_view.xml', diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index c7d07b9eb5f..6d95b561fce 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -195,23 +195,17 @@ class pos_session(osv.osv): required=True, select=1, domain="[('state', '=', 'active')]", -# readonly=True, -# states={'draft' : [('readonly', False)]} ), - 'name' : fields.char('Session ID', size=32, - required=True, -# readonly=True, -# states={'draft' : [('readonly', False)]} - ), + 'name' : fields.char('Session ID', size=32, required=True, readonly=True), 'user_id' : fields.many2one('res.users', 'Responsible', required=True, select=1, -# readonly=True, -# states={'draft' : [('readonly', False)]} + readonly=True, + states={'opening_control' : [('readonly', False)]} ), - 'start_at' : fields.datetime('Opening Date'), - 'stop_at' : fields.datetime('Closing Date'), + 'start_at' : fields.datetime('Opening Date', readonly=True), + 'stop_at' : fields.datetime('Closing Date', readonly=True), 'state' : fields.selection(POS_SESSION_STATE, 'State', required=True, readonly=True, @@ -281,7 +275,7 @@ class pos_session(osv.osv): for session in self.browse(cr, uid, ids, context=None): # open if there is no session in 'opening_control', 'opened', 'closing_control' for one user domain = [ - ('state', '!=', 'closed'), + ('state', 'not in', ('closed','closing_control')), ('user_id', '=', uid) ] count = self.search_count(cr, uid, domain, context=context) @@ -344,7 +338,7 @@ class pos_session(osv.osv): record.write(values, context=context) for st in record.statement_ids: st.button_open(context=context) - return True + return self.open_frontend_cb(cr, uid, ids, context=context) def wkf_action_opening_control(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {'state' : 'opening_control'}, context=context) @@ -352,7 +346,7 @@ class pos_session(osv.osv): 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.id <> session.cash_register_id.id: 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}) @@ -377,7 +371,7 @@ class pos_session(osv.osv): name= _('Point of Sale Loss') if not account_id: raise osv.except_osv( _('Error!'), - _("Please set your profit and loss accounts on your payment method '%s'.") % (st.journal_id.name,)) + _("Please set your profit and loss accounts on your payment method '%s'. This will allow OpenERP to post the difference of %.2f in your ending balance. To close this session, you can update the 'Closing Cash Control' to avoid any difference.") % (st.journal_id.name,st.difference)) bsl.create(cr, uid, { 'statement_id': st.id, 'amount': st.difference, @@ -388,7 +382,15 @@ class pos_session(osv.osv): getattr(st, 'button_confirm_%s' % st.journal_id.type)(context=context) self._confirm_orders(cr, uid, ids, context=context) - return self.write(cr, uid, ids, {'state' : 'closed'}, context=context) + self.write(cr, uid, ids, {'state' : 'closed'}, context=context) + + obj = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'point_of_sale', 'menu_point_root')[1] + return { + 'type' : 'ir.actions.client', + 'name' : 'Point of Sale Menu', + 'tag' : 'reload', + 'params' : {'menu_id': obj}, + } def _confirm_orders(self, cr, uid, ids, context=None): wf_service = netsvc.LocalService("workflow") @@ -413,10 +415,8 @@ class pos_session(osv.osv): def open_frontend_cb(self, cr, uid, ids, context=None): if not context: context = {} - if not ids: return {} - context.update({'session_id' : ids[0]}) return { 'type' : 'ir.actions.client', diff --git a/addons/point_of_sale/point_of_sale_data.xml b/addons/point_of_sale/point_of_sale_data.xml index 30fb98dc05f..108dd98c750 100644 --- a/addons/point_of_sale/point_of_sale_data.xml +++ b/addons/point_of_sale/point_of_sale_data.xml @@ -15,7 +15,7 @@ - Main PoS + Main diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index 0379d14e573..28407d0bcae 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -3,9 +3,9 @@ - @@ -156,7 +156,7 @@ - + @@ -764,18 +764,6 @@ - - - Point of Sale - - - 150 - - pos.config.form.view pos.config @@ -896,81 +884,93 @@
-
- - - +
+
+

+ Point of Sale Session: + +

+ - -