Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
4123 Tampilan

i have created a sheduale action with this function

for rec in records:
quant_obj = rec.env['stock.quant']
hq_location = rec.env.ref('stock.stock_location_stock')
quant_qty_available = quant_obj._get_available_quantity(rec, hq_location)
if rec.website_block:
    rec.write({'is_published': False})
elif rec.inventory_availability == 'never':
    rec.write({'is_published': True})
else:
    if quant_qty_available <= rec.available_threshold:
        rec.write({'is_published': False})
    else:
        rec.write({'is_published': True})

it is supposed to check availability in main location and unpublish if not available.


it doent work when i try to run it manually in scheduled action screen but it work perfectly if i changed it to server action and activate it from action button,


Does any one know what am doing wrong?

Avatar
Buang

kindly share the erro log

Jawaban Terbai

Hello Mohamed,

Hope you are doing well.

Here, the records contains empty object so the loop doesn't iterate. You can use records.search([]) for fetching records and then iterate loop.

records = records.search([])
for rec in records:
quant_obj = rec.env['stock.quant']
hq_location = rec.env.ref('stock.stock_location_stock')
quant_qty_available = quant_obj._get_available_quantity(rec, hq_location)
if rec.website_block:
rec.write({'is_published': False})
elif rec.inventory_availability == 'never':
rec.write({'is_published': True})
else:
if quant_qty_available <= rec.available_threshold:
rec.write({'is_published': False})
else:
rec.write({'is_published': True})

Thanks & Regards,

Email: odoo@aktivsoftware.com

Skype: kalpeshmaheshwari

Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
1
Mei 15
9484
1
Agu 22
7803
5
Agu 25
9742
1
Jul 25
362
0
Jul 25
397