Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

1

How do to creat two sequence in a object?

By
huongcute
on 7/11/14, 12:03 AM 2,419 views

hello everybody

I am a new member on OpenERP. I have a question .I hope any someone tell me. I want to creat 2 sequence ( 1 sequence to 1 field) in a object. what do I have to do?

Thanks all

Hi Fanha Giang! But why need 2 sequence for one object?

Fanha Giang
on 7/11/14, 2:38 AM

hi vasiliy Birukov, I think it is the sequence number of the "purchase order", "sale other", "invoice number". each sequence for 1 period year.

Fanha Giang
on 7/11/14, 2:46 AM
3

Vasiliy Birukov

--Vasiliy Birukov--
3446
| 6 6 8
Russian Federation
--Vasiliy Birukov--

Help develop and implement any project on base Odoo.

Vasiliy Birukov
On 7/11/14, 4:40 AM

First field define as common sequence (how you can see for example in module sale).

For second field define functional filed that will calculate value based on first field.

1

Hello Huongcute

For creating a sequence you have to create records for "ir.sequenc.type" and "ir.sequence"  in an xml file

See example:

<!-- this is sequence type -->

        <record id="seq_type_my_transaction" model="ir.sequence.type">
            <field name="name">My Sequence</field>
            <field name="code">my.transaction</field>

        </record>

Note: 'my.transction' is the code used for creating the sequence show below and must be unique

<!-- this is actual sequence  -->

        <record id="seq_my_transaction" model="ir.sequence">
            <field name="name">My Sequence</field>
            <field name="code">my.transaction</field>
            <field name="prefix"><prefix></field> i.e such as current year or any string
            <field name="padding">5</field>
            <field name="company_id" eval="False"/>
            <field name="implementation">no_gap</field> (possible values 'no_gap' and 'standard')
        </record>

 

Now lets say model name is 'test.transaction', and you want to set the sequence on 'name' (type character) field, so generally two ways are there

1./ either you provide it in "_defaults"

See example:

_defaults = { 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'my.transaction')}

2./ you override the "create" method 

See example:

        name=self.pool.get('ir.sequence').get(cr, uid, 'my.transaction')

        vals.update({
                     'name':name or '/' 
                     })
        new_id=super(test_transaction,self).create(cr,uid,vals,context=context)        

        return new_id

Note : You can generate the sequence value at any time as per you requirement, the above shown are the general trend of doing this, You can refer to account.invoice where the sequence is generated while validating the invoice.

You can create the sequence same way for the second field.

Regards

0
Jaysinh Shukla (jsh)
On 7/11/14, 2:05 AM

hi Vasiliy Birukov, I don't know what she need for. but in my case, I use odoo to input the data for both 2014 (current year) and 2013 (past year). because I don't know how to import the from our data (which is save in excel) and I need to input the data for both 2 years at the same time. yes, I really want to know how to import the data. but still not found the solution. regards

0
huongcute
On 7/11/14, 2:47 AM

thanks Hiren Vora, Emipro Technologies . But I want to creat two sequence in one object. So I think when I use Sequence of Odoo ,

IHi . in Code in show : I want STT field shall sequence : 001 ,002.... and ma_nv field shall sequence : AC001, AC002. Note: 2field of one object. So I see Sequence in Openerp web has code to browse object which has field sequence.:So I think when I choose Code = objectname. The fields is installed to sequence , shall sequence according format which I choose in web. So I dont have 2 field sequence likewise. Code .py:

class danh_sach_nv(osv.Model):

_name='danh.sach.nv

' _columns={

               'ma_nv':fields.many2one('danh.sach.hd','Mã nhân viên'),

                'stt':fields.many2one('stt','STT',required = True),

                  'ten_nv':fields.many2one('danh.sach.hd','Họ và tên',size = 256,required =True),

                  'gender': fields.selection([('nam','Nam'),('nu','Nữ'),('khac','Khác')],'Giới tính'),

                   'ten_bp':fields.many2one('bo.phan','Bộ phận',size=64,required=True),

                      'ma_bp':fields.many2one('bo.phan','Tên bộ phận',[('ten_bp.bo.phan','=','ten_bp')],required=True),

                      'noi_lam_viec':fields.char('Nơi làm việc',size=200), '

                        'image_nv':fields.binary('Ảnh đại diện'),

}

defaults={

'ma_nv':lambda obj,cr,uid,context: obj.pool.get('ir.sequence').get(cr,uid,'danh.sach.nv'),

}

 

So I dont know how do with field name : 'stt' field

code .xml

<openerp>
    <data>
        <record id = 'seq_type_danh_sach_nv' model='ir.sequence.type'>
            <field name = 'name'>danh_sach_nv_sequence</filed>
            <field name = 'code'>danh.sach.nv</filed>
            
        </record>

<record id= 'seq_danh_sach_nv' model='ir.sequence'>
            <field name = 'name'>danh_sach_nv_sequence</filed>
            <field name ='code'>danh.sach.nv</field>
            <field name = 'padding'>3</field>
            <field eval='0' name='number_increment'/>
            
        </record>

Can you help me?

@huongcute - sequence is not related to any of the fields in a model. You can create any no of sequence and then you have to manage it in you business logic how and when to apply the sequence on a field. You have got two fields.. so you can create two sequence and in your code you will have to call those two sequence and assign the values to your fields 'field 1' and 'field 2'. Let me know if misunderstood or you post the code that you have written.

Hiren Vora - CEO at Emipro Technologies Pvt. Ltd. India
on 7/11/14, 3:41 AM

Hi . in Code in show : I want STT field shall sequence : 001 ,002.... and ma_nv field shall sequence : AC001, AC002. Note: 2field of one object. So I see Sequence in Openerp web has code to browse object which has field sequence.:So I think when I choose Code = objectname. The fields is installed to sequence , shall sequence according format which I choose in web. So I dont have 2 field sequence likewise. Code .py: class danh_sach_nv(osv.Model): _name='danh.sach.nv' _columns={ 'ma_nv':fields.many2one('danh.sach.hd','Mã nhân viên'), 'stt':fields.many2one('stt','STT',required = True), 'ten_nv':fields.many2one('danh.sach.hd','Họ và tên',size = 256,required =True), 'gender': fields.selection([('nam','Nam'),('nu','Nữ'),('khac','Khác')],'Giới tính'), 'ten_bp':fields.many2one('bo.phan','Bộ phận',size=64,required=True), 'ma_bp':fields.many2one('bo.phan','Tên bộ phận',[('ten_bp.bo.phan','=','ten_bp')],required=True), 'noi_lam_viec':fields.char('Nơi làm việc',size=200), 'image_nv':fields.binary('Ảnh đại diện'), } defaults={ 'ma_nv':lambda obj,cr,uid,context: obj.pool.get('ir.sequence').get(cr,uid,'danh.sach.nv'), } So I dont know how do with field name : 'stt' code .xml danh_sach_nv_sequence danh.sach.nv danh_sach_nv_sequence danh.sach.nv3 Can you help me?

huongcute
on 7/11/14, 4:33 AM
hi

IHi . in Code in show : I want STT field shall sequence : 001 ,002.... and ma_nv field shall sequence : AC001, AC002. Note: 2field of one object. So I see Sequence in Openerp web has code to browse object which has field sequence.:So I think when I choose Code = objectname. The fields is installed to sequence , shall sequence according format which I choose in web. So I dont have 2 field sequence likewise. Code .py:

class danh_sach_nv(osv.Model):

_name='danh.sach.nv

' _columns={

               'ma_nv':fields.many2one('danh.sach.hd','Mã nhân viên'),

                'stt':fields.many2one('stt','STT',required = True),

                 'ten_nv':fields.many2one('danh.sach.hd','Họ và tên',size = 256,required =True),

                'gender': fields.selection([('nam','Nam'),('nu','Nữ'),('khac','Khác')],'Giới tính'),

                 'ten_bp':fields.many2one('bo.phan','Bộ phận',size=64,required=True),

                 'ma_bp':fields.many2one('bo.phan','Tên bộ phận',[('ten_bp.bo.phan','=','ten_bp')],required=True),

                 'noi_lam_viec':fields.char('Nơi làm việc',size=200), '

                  'image_nv':fields.binary('Ảnh đại diện'),

}

defaults={

'ma_nv':lambda obj,cr,uid,context: obj.pool.get('ir.sequence').get(cr,uid,'danh.sach.nv'),

}

 

So I dont know how do with field name : 'stt' field

code .xml

<openerp>
    <data>
        <record id = 'seq_type_danh_sach_nv' model='ir.sequence.type'>
            <field name = 'name'>danh_sach_nv_sequence</filed>
            <field name = 'code'>danh.sach.nv</filed>
            
        </record>

<record id= 'seq_danh_sach_nv' model='ir.sequence'>
            <field name = 'name'>danh_sach_nv_sequence</filed>
            <field name ='code'>danh.sach.nv</field>
            <field name = 'padding'>3</field>
            <field eval='0' name='number_increment'/>
            
        </record>

Can you help me?



2014-07-11 14:41 GMT+07:00 <Hiren@mail1.openerp.com>:

@huongcute - sequence is not related to any of the fields in a model. You can create any no of sequence and then you have to manage it in you business logic how and when to apply the sequence on a field. You have got two fields.. so you can create two sequence and in your code you will have to call those two sequence and assign the values to your fields 'field 1' and 'field 2'. Let me know if misunderstood or you post the code that you have written.

Hiren Vora,
Sr. OpenERP Technical Engineer,
Emipro Technologies, India.
www.emiprotechnologies.com
info@emiprotechnologies.com

Sent by OpenERP S.A. using OpenERP. Access your messages and documents in Odoo

huongcute
on 7/11/14, 4:38 AM

@huongcute - looking at your code what I can see is that you are trying to set sequence for "many2one" type field, which is not making sense for me because sequence fields are generally of type "char". Making a field as 'many2one' and using it for 'sequence' doesn't make sense be 'many2one' is a master table having values already filled into it and referenced elsewhere. I think you should have field types for your fields 'ma_nv' and 'stt' as "char" and not as "many2one".

Hiren Vora - CEO at Emipro Technologies Pvt. Ltd. India
on 7/11/14, 7:38 AM
Hi Hiren !

I created a module : when I install it to Openerp-sever. I have an error : Recursion error in modules dependencies !
I dont know I have a error in my moduls. Can you check it to help me?

it is openerp-sever.  

and this is my module 


Thaks for you help


2014-07-11 18:38 GMT+07:00 <Hiren@mail1.openerp.com>:

@huongcute - looking at your code what I can see is that you are trying to set sequence for "many2one" type field, which is not making sense for me because sequence fields are generally of type "char". Making a field as 'many2one' and using it for 'sequence' doesn't make sense be 'many2one' is a master table having values already filled into it and referenced elsewhere. I think you should have field types for your fields 'ma_nv' and 'stt' as "char" and not as "many2one".

Hiren Vora,
Sr. OpenERP Technical Engineer,
Emipro Technologies, India.
www.emiprotechnologies.com
info@emiprotechnologies.com

Sent by OpenERP S.A. using OpenERP. Access your messages and documents in Odoo

huongcute
on 7/18/14, 5:12 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

3 follower(s)

Stats

Asked: 7/11/14, 12:03 AM
Seen: 2419 times
Last updated: 1/8/16, 7:55 AM