how I can get two sequences for same object?
for example :
i have an object with two field : name and name_two I would like to assign the sequence 1 for field 1 and sequence 2 for field 2
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
how I can get two sequences for same object?
for example :
i have an object with two field : name and name_two I would like to assign the sequence 1 for field 1 and sequence 2 for field 2
You have to define sequence in 'ir.sequence' and in 'ir.sequence.type' and then call this :
my_sequence = self.pool['ir.sequence'].next_by_code(cr, uid,
'stock.picking_mine_sequence', context=context)
self.write(cr, uid, [picking.id], {'name_two': my_sequence})
this is an example on stock picking in 'action_done' method
Some example in the code use another method than 'next_by_code' to do it. But next_by_code is the right way
2 tables are used in sequences : ir_sequence and ir_sequence_type. I don't know why because but there is a one to one relation between them.
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="seq_type_bpl_worker_registration" model="ir.sequence.type">
<field name="name">bpl_worker_registration_sequence</field>
<field name="code">bpl.worker</field>
</record>
<record id="seq_type_bpl_employer_no_registration" model="ir.sequence.type">
<field name="name">bpl_employer_no</field>
<field name="code">bpl.employer</field>
</record>
<record model="ir.sequence" id="seq_bpl_worker_registration">
<field name="name">bpl_worker_registration_sequence</field>
<field name="code">bpl.worker</field>
<field name="prefix">W</field>
<field name="padding">5</field>
</record>
<record model="ir.sequence" id="seq_bpl_employer_no_registration">
<field name="name">bpl_employer_no</field>
<field name="code">bpl.employer</field>
<!-- <field name="prefix">%(register_no)s/</field> -->
<field name="prefix">E</field>
<field name="padding">3</field>
</record>
</data>
</openerp>
def create(self, cr, uid, values, context=None):
values['register_no'] = self.pool.get('ir.sequence').get(cr, uid, 'bpl.worker')
values['employer_no'] = self.pool.get('ir.sequence').get(cr, uid, 'bpl.employer')
return super(bpl_worker_registration, self).create(cr, uid, values, context=context)
_defaults = {
'register_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'bpl.worker'),
'employer_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'bpl.employer'),
}
You have used 2 different objects for a sequence. While in my case, only one object can say bpl.employer. And for that I need 2 sequence.
Please, provide details; at least an example would be nice. Also you can use tags (at least the version, perhaps a module)...
refer this https://github.com/priyankahdp/openerp/blob/openerp
I have created 2 sequences for sales.order and created type field "type1" , type2. If I select type1, i want sequence1, If I select type2, I want sequence2.
Given link is not working for me