diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index 4e378d0a494..9a7c48d7574 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -63,9 +63,9 @@ Main Features
'views/templates.xml',
'point_of_sale_report.xml',
'point_of_sale_view.xml',
+ 'point_of_sale_sequence.xml',
'point_of_sale_data.xml',
'report/pos_order_report_view.xml',
- 'point_of_sale_sequence.xml',
'point_of_sale_workflow.xml',
'account_statement_view.xml',
'account_statement_report.xml',
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 9d731e677d2..1e074975391 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -186,14 +186,26 @@ class pos_config(osv.osv):
return self.write(cr, uid, ids, {'state' : 'deprecated'}, context=context)
def create(self, cr, uid, values, context=None):
- proxy = self.pool.get('ir.sequence')
- sequence_values = dict(
- name='PoS %s' % values['name'],
- padding=5,
- prefix="%s/" % values['name'],
- )
- sequence_id = proxy.create(cr, uid, sequence_values, context=context)
- values['sequence_id'] = sequence_id
+ ir_sequence = self.pool.get('ir.sequence')
+ # force sequence_id field to new pos.order sequence
+ values['sequence_id'] = ir_sequence.create(cr, uid, {
+ 'name': 'POS Order %s' % values['name'],
+ 'padding': 4,
+ 'prefix': "%s/" % values['name'],
+ 'code': "pos.order",
+ 'company_id': values.get('company_id', False),
+ }, context=context)
+
+ # TODO master: add field sequence_line_id on model
+ # this make sure we always have one available per company
+ ir_sequence.create(cr, uid, {
+ 'name': 'POS order line %s' % values['name'],
+ 'padding': 4,
+ 'prefix': "%s/" % values['name'],
+ 'code': "pos.order.line",
+ 'company_id': values.get('company_id', False),
+ }, context=context)
+
return super(pos_config, self).create(cr, uid, values, context=context)
def unlink(self, cr, uid, ids, context=None):
@@ -399,7 +411,7 @@ class pos_session(osv.osv):
bank_statement_ids.append(statement_id)
values.update({
- 'name' : pos_config.sequence_id._next(),
+ 'name': self.pool['ir.sequence'].get(cr, uid, 'pos.session'),
'statement_ids' : [(6, 0, bank_statement_ids)],
'config_id': config_id
})
@@ -464,7 +476,6 @@ class pos_session(osv.osv):
def wkf_action_close(self, cr, uid, ids, context=None):
# Close CashBox
- bsl = self.pool.get('account.bank.statement.line')
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:
@@ -722,7 +733,13 @@ class pos_order(osv.osv):
}
def create(self, cr, uid, values, context=None):
- values['name'] = self.pool.get('ir.sequence').get(cr, uid, 'pos.order')
+ if values.get('session_id'):
+ # set name based on the sequence specified on the config
+ session = self.pool['pos.session'].browse(cr, uid, values['session_id'], context=context)
+ values['name'] = session.config_id.sequence_id._next()
+ else:
+ # fallback on any pos.order sequence
+ values['name'] = self.pool.get('ir.sequence').get_id(cr, uid, 'pos.order', 'code', context=context)
return super(pos_order, self).create(cr, uid, values, context=context)
def test_paid(self, cr, uid, ids, context=None):
diff --git a/addons/point_of_sale/point_of_sale_sequence.xml b/addons/point_of_sale/point_of_sale_sequence.xml
index 4bcab244c56..6ac1d003d98 100644
--- a/addons/point_of_sale/point_of_sale_sequence.xml
+++ b/addons/point_of_sale/point_of_sale_sequence.xml
@@ -10,23 +10,11 @@
POS Order
pos.order
-
- POS Order
- pos.order
- POS
- 4
-
POS order line
pos.order.line
-
- POS order line
- pos.order.line
- POSL
- 4
-
POS Session
@@ -36,8 +24,9 @@
POS Session
pos.session
- POS/%(day)s/(month)s/%(year)s/
- 4
+ POS/%(year)s/%(month)s/%(day)s/
+ 2
+