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 +