Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
4 ตอบกลับ
6487 มุมมอง

Hello I am trying to make an autoincrement field for the traceability of purchases requests. 

I have called the field 

    code = fields.Char('Code', size=32, required=True,readonly=True, default=_get_default_name, track_visibility='onchange')

Using the function next_by_code for the autoincrement  

    def _get_default_name(self):        return self.env['ir.sequence'].next_by_code('sprogroup.purchase.request') 

 But this method doesn't work. In my idea I would like to make the field CODE a field that is called like RA2020001 for the first then RA2020002 for the second and so on. But I cannot do it. Any suggests?

Have a nice day

อวตาร
ละทิ้ง

Please make clear what exactly not working? like are you missing sequence in between or sequence not generated so on. it will be helpful to get your question answered.

คำตอบที่ดีที่สุด

Hello Michele, 

Default value is not working because this field is read only type and while creating any record this field is not updating inside the database.

So you can update your code like that,

code = fields.Char ('Code', size = 32, required = True, readonly = True, default = lambda self: _ ('New'), track_visibility = 'onchange')
then inherit the create method

    @ api.model

    def create (self, waltz):

        if waltz:

            waltz ['code'] = self.env ['ir.sequence']. next_by_code ('sprogroup.purchase.request') or _ ('New')

        return super (YourClass, self) .create (waltz)

I hope your query is resolved by now. 

Thanks

Anisha Bahukhandi

Technical Content Writer

Webkul 

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
4
พ.ค. 24
12627
1
เม.ย. 24
3269
0
พ.ย. 23
2014
Blank White Page After log in to Odoo13 แก้ไขแล้ว
1
ก.ย. 23
2102
2
ส.ค. 23
4494