diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index a1cc41b7411..b2d60cda290 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -58,6 +58,7 @@ Main features :
'wizard/pos_payment_report.xml',
'wizard/pos_payment.xml',
'wizard/pos_box.xml',
+ 'wizard/pos_session_opening.xml',
'point_of_sale_report.xml',
'point_of_sale_view.xml',
'report/pos_order_report_view.xml',
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index 69c269de4d5..71ef5e70fd9 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -1051,5 +1051,8 @@
+
+
+
diff --git a/addons/point_of_sale/res_users.py b/addons/point_of_sale/res_users.py
index e048ad01dac..e9c0d0219b6 100644
--- a/addons/point_of_sale/res_users.py
+++ b/addons/point_of_sale/res_users.py
@@ -39,6 +39,7 @@ class res_users(osv.osv):
_columns = {
'ean13' : fields.char('EAN13', size=13, help="BarCode"),
+ 'pos_config' : fields.many2one('pos.config', 'PoS Config', domain=[('state', '=', 'active')]),
}
def _check_ean(self, cr, uid, ids, context=None):
diff --git a/addons/point_of_sale/res_users_view.xml b/addons/point_of_sale/res_users_view.xml
index c34b9566406..df726c25815 100644
--- a/addons/point_of_sale/res_users_view.xml
+++ b/addons/point_of_sale/res_users_view.xml
@@ -10,6 +10,7 @@
+
diff --git a/addons/point_of_sale/wizard/__init__.py b/addons/point_of_sale/wizard/__init__.py
index cc2ab6302ed..cce0b46d6ff 100644
--- a/addons/point_of_sale/wizard/__init__.py
+++ b/addons/point_of_sale/wizard/__init__.py
@@ -30,7 +30,7 @@ import pos_receipt
import pos_payment_report_user
import pos_payment_report
import pos_payment
-
+import pos_session_opening
import pos_box
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/pos_session_opening.py b/addons/point_of_sale/wizard/pos_session_opening.py
new file mode 100644
index 00000000000..8415f8ec357
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_session_opening.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+
+from osv import osv, fields
+from tools.translate import _
+
+class pos_session_opening(osv.osv_memory):
+ _name = 'pos.session.opening'
+
+ _columns = {
+ 'pos_config_id' : fields.many2one('pos.config', 'PoS Config', required=True),
+ 'pos_session_id' : fields.many2one('pos.session', 'PoS Session'),
+ }
+
+ def open_session_cb(self, cr, uid, ids, context=None):
+ assert len(ids) == 1
+ proxy = self.pool.get('pos.session')
+ wizard = self.browse(cr, uid, ids[0], context=context)
+
+ if not wizard.pos_session_id:
+ values = {
+ 'user_id' : uid,
+ 'config_id' : wizard.pos_config_id.id,
+ }
+ session_id = proxy.create(cr, uid, values, context=context)
+ return self._open_session(session_id)
+
+ def open_existing_session_cb(self, cr, uid, ids, context=None):
+ assert len(ids) == 1
+ wizard = self.browse(cr, uid, ids[0], context=context)
+ return self._open_session(wizard.pos_session_id.id)
+
+ def _open_session(self, session_id):
+ return {
+ 'name': _('Session'),
+ 'view_type': 'form',
+ 'view_mode': 'form,tree',
+ 'res_model': 'pos.session',
+ 'res_id': session_id,
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ }
+
+ def on_change_config(self, cr, uid, ids, config_id, context=None):
+ if not config_id:
+ return {}
+
+ domain = [
+ ('state', 'in', ('opening_control', 'opened')),
+ ('config_id', '=', config_id),
+ ]
+
+ proxy = self.pool.get('pos.session')
+ session_ids = proxy.search(cr, uid, domain, context=context)
+
+ result = {
+ 'value' : {
+ 'pos_session_id' : session_ids and session_ids[0] or False,
+ }
+ }
+
+ return result
+
+ def default_get(self, cr, uid, fieldnames, context=None):
+ current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+
+ result = {
+ 'pos_config_id' : current_user.pos_config and current_user.pos_config.id or False,
+ }
+
+ return result
+
+pos_session_opening()
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_session_opening.xml b/addons/point_of_sale/wizard/pos_session_opening.xml
new file mode 100644
index 00000000000..912f966f57f
--- /dev/null
+++ b/addons/point_of_sale/wizard/pos_session_opening.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ pos.session.opening.form.view
+ pos.session.opening
+
+
+
+
+
+
+ PoS Session Opening
+ ir.actions.act_window
+ pos.session.opening
+ form
+ form
+ new
+
+
+
\ No newline at end of file