author: @kawam tags:#odoo


Contoh code ketika ada field yang dibutuhkan untuk generate sequence. Dalam hal ini adalah site.

sequence_code = 'ktc.{}.maintenance.request.site{}'.format(x_type, site_id.id)
seq = self.env['ir.sequence'].search([('code', '=', sequence_code)], limit=1)
# If a sequence for this site does not yet exist, create one.
if not seq:
    seq = self.env['ir.sequence'].create({
	    'name': 'Maintenance Request Sequence for Site {}'.format(site_id.name),
        'code': sequence_code,
        'padding': 4,
        'prefix': '%(y)s%(month)s-',
        'company_id': False,
        'use_date_range': True,
        'range_reset': 'monthly',
    })
return 'WO-{}-{}-'.format(x_type, site_id.name.upper()) + seq._next()

Dalam kode ini, sequence akan tergenerate berdasarkan type dan site_id.

Sebagai fitur tambahan, kita dapat menggunakan addons sequence_reset_period yang berguna untuk meng-automate periode reset sequence. Namun, tanpa menggunakan ini kita tetap bisa melakukan reset manual secara langsung.