Odoo 16.
The purpose as per the subject above:
Category | Nomor
A | A-01
A | A-02
A | A-03
B | B-01
B | B-02
B | B-03
B | B-04
...
So, I need to get the numbering in the above sample. The category came from Many2one selections. The Category is based on user input, so not defined before.
But the result as below:
Category | Nomor
A | A-01
A | A-02
A | A-03
B | B-04
B | B-05
B | B-06
B | B-07
...
The number was continuing from the previous category number.
There is any wrong method or another method?
My Code that I already tried it:
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
condition = [('kode_kategori_tarif', 'like', vals.get('kode_kategori_tarif'))]
last_record = self.search(condition, order='id desc', limit=1)
for lr in last_record:
last_seq = lr.kode_sub_kategori_tarif
if last_seq:
last_no = int(last_seq.split('-')[-1]) + 1
seq = '{}-{:02d}'.format(lr.kode_kategori_tarif, last_no)
else: seq = '{}-01'.format(lr.kode_kategori_tarif)
vals['kode_sub_kategori_tarif'] = seq
record = super(BaseMD_SubKategoriTarif, self).create(vals_list)
return record
id_kode_kategori_tarif = fields.Many2one('thg_base_hospital.basemd_kategori_tarif', 'Kategori')
kode_kategori_tarif = fields.Char('Kode Tarif', related="id_kode_kategori_tarif.kode_kategori_tarif", store=True)
kode_sub_kategori_tarif = fields.Char('Kode Sub Kategori', readonly=True, help='Code will show after saved')
name = fields.Char('Nama Sub Kategori Tarif', required=True)
jasa_dokter = fields.Boolean('Jasa Dokter', default=False)