Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
1366 Lượt xem

defsearch_or_create_kontrak_tujuan_biaya(self,anggota):# Search for existing kontrak_tujuan_biaya

for record inself: struktur_swp =self.env['easykop.struktur_simpanan'].sudo().search(['|', ('name','=','Simpanan Wajib Pinjam Tagihan Bank'), ('name','=','Simpanan Wajib Pinjam Tagihan Tunai') ])
ifnot struktur_swp:raiseValidationError(str(f"Error struktur"))
try: kontrak_tujuan_biaya =self.env['easykop.kontrak_simpanan'].sudo().search([ ('customer_id','=', anggota.id), ('state','=','dimulai'), ('struktur_id','=', struktur_swp.id) ],order='create_date desc',limit=1)
ifnot kontrak_tujuan_biaya:raiseValidationError(f"Error saat memasukan kontrak tujuan: {struktur_swp}\n")# Create new kontrak_tujuan_biaya if not found# KontrakSimpanan = self.env['easykop.kontrak_simpanan'].sudo()# kontrak_tujuan_biaya = KontrakSimpanan.create({# 'customer_id': anggota.id,# 'tanggal_dimulai': fields.Date.today(),# 'struktur_id': struktur_swp.id,# })except ValidationError as e:raiseValidationError(str(f"Error {e}"))
return kontrak_tujuan_biaya

Ảnh đại diện
Huỷ bỏ
Tác giả

solved wiiir

Câu trả lời hay nhất

Hi,

Based on the traceback that you have shared,

struktur_swp =self.env['easykop.struktur_simpanan'].sudo().search(['|', ('name','=','Simpanan Wajib Pinjam Tagihan Bank'), ('name','=','Simpanan Wajib Pinjam Tagihan Tunai') ])

from this line, you are getting 2 records as a result of your search , and subsequently the following code will fail, as you are refering to  struktur_swp.id , which is not right

you can refer this video on how to fix singleton error

Singleton Error In Odoo || Reason And Solution || How To Fix Singleton Error in Odoo


hope this will help you

thanks

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Generally singleton error is comes, when multiple record is come at a time and we want to stored in field. if facing singelton error issue simply write for loop on that particular variable for example------

struktur_swp =self.env['easykop.struktur_simpanan'].sudo().search(['|', ('name','=','Simpanan Wajib Pinjam Tagihan Bank'), ('name','=','Simpanan Wajib Pinjam Tagihan Tunai') ])

in struktur_swp variable there is two id is coming , so you can write like this to solve singleton issue.

struktur_swp =self.env['easykop.struktur_simpanan'].sudo().search(['|', ('name','=','Simpanan Wajib Pinjam Tagihan Bank'), ('name','=','Simpanan Wajib Pinjam Tagihan Tunai') ])

fro rec in struktur_swp:

​your field name = rec (rec in place of struktur_swp)

Ảnh đại diện
Huỷ bỏ
Tác giả

thankyu sir for your attentiion

Bài viết liên quan Trả lời Lượt xem Hoạt động
3
thg 9 25
2748
0
thg 8 25
352
1
thg 8 25
2414
2
thg 7 25
8179
2
thg 7 25
4616