跳至內容
選單
此問題已被標幟
1 回覆
1990 瀏覽次數

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)

頭像
捨棄
最佳答案

Hi,

If its fine to add a sequence record inside the category model, it will be much easier for you. On creating the category record, create a record inside the ir.sequence table and store it inside a field in category model.

Then whenever a record is created in this category, you can get the next sequence number by calling function (next_by_id) to provide next number in ir.sequence.


Suppose if you follow this approach and have a sequence_id field in your category model, then, inside your create function:

sequence_id.next_by_id() will return you next number from this sequence.

Thanks

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
3
12月 21
10373
1
10月 24
2158
0
4月 22
2606
0
10月 17
3480
2
6月 24
4517