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

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?

Ảnh đại diện
Huỷ bỏ

kindly share the erro log

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

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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 5 15
9483
1
thg 8 22
7795
5
thg 8 25
9737
1
thg 7 25
360
0
thg 7 25
393