Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
4103 Zobrazení

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
Zrušit

kindly share the erro log

Nejlepší odpověď

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
kvě 15
9481
1
srp 22
7782
5
srp 25
9687
1
čvc 25
359
0
čvc 25
390