Skip to Content
Menu
This question has been flagged
2 Replies
1361 Zobrazenia

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

Avatar
Zrušiť
Autor

solved wiiir

Best Answer

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

Avatar
Zrušiť
Best Answer

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)

Avatar
Zrušiť
Autor

thankyu sir for your attentiion

Related Posts Replies Zobrazenia Aktivita
3
sep 25
2731
0
aug 25
333
1
aug 25
2377
2
júl 25
8155
2
júl 25
4592