İçereği Atla
Menü
Bu soru işaretlendi
2 Cevaplar
1362 Görünümler

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
Vazgeç
Üretici

solved wiiir

En İyi Yanı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

Avatar
Vazgeç
En İyi Yanı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)

Avatar
Vazgeç
Üretici

thankyu sir for your attentiion

İlgili Gönderiler Cevaplar Görünümler Aktivite
3
Eyl 25
2732
0
Ağu 25
345
1
Ağu 25
2398
2
Tem 25
8166
2
Tem 25
4607