跳至內容
選單
此問題已被標幟
3 回覆
1913 瀏覽次數

Hello, 

Our client is hosted on Odoo Online, so we cannot push any custom code. 

Our client wants to confirm all sales (status = sales order) with the status "Quotation sent". I try doing it with a automated action. But it's not working 

The trigger is creation date 

Here is a screenshot 


頭像
捨棄

What you want to do? You want to change the old record status?

作者

Yes, I would like that Odoo confirms all quotation sents to sales orders.

最佳答案

Hello, 


Try this code 

x1 = env['sale.order'].browse(record.id)

for x in x1:

    if x.state=='sent':

        x.update({'state':'sale'})




Thanks

頭像
捨棄
最佳答案

Hi,

Please change your Python code as below and try it again:for records in model.search([]):
  if records.state == 'sent':
    records.write({'state':'sale'})

You can also able to create a scheduled action:


if you create the schedules action as exactly as same as above it will only trigger one time, because the number of calls is '1'. If you want to execute daily or at all times according to your trigger time you can make the number of calls to '-1'


Hope it helps

頭像
捨棄
最佳答案

Hello,

Sale Order -> "Confirm" -> action_confirm


If Setting ->  Automation ->  Automated Actions:


1. Try Code:

for rec in records:

  if rec.state == 'sent':

    rec.action_confirm()




Elif Setting -> Action ->  Server Actions:

1. Create Contextual Action: Click 
Action Name: SO status: sent to done
Model: Sales Order
Action To Do: Execute Python Code
Python Code:
for rec in records:

  if rec.state == 'sent':

    rec.action_confirm()


2. Sale Order -> Tree  -> Filters -> Add Custom Filter -> Status is  Quotation Sent
                             
-> Tree -> Checkbox Selected (all)
​     
-> Action -> SO status: sent to done


Else:
    
Contact me for more information: enginulger06@gmail.com

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
2
8月 25
179
2
8月 25
1324
0
2月 25
1456
1
1月 25
2037
2
12月 24
1702