【发布时间】:2018-11-03 08:20:55
【问题描述】:
我正在为我公司的 Odoo 项目工作。
我之前的一位工程师(现已辞职)编写了一个 Go 脚本,该脚本会定期启动以根据销售订单创建发票。这个 Go 脚本运行良好。
现在,我们意识到创建发票也可以通过 Odoo 的自动/计划操作来完成。
我目前的任务是将他的 Go 脚本翻译成 Odoo 的自动动作。
但是,我有一个问题......
在他的 Go 脚本中有这样的代码:
param := []interface{}{
c.cred.Db,
c.uid,
c.cred.Password,
"sale.advance.payment.inv",
"create_invoices",
[]int{
paymentID,
},
map[string]interface{}{
"context": map[string]interface{}{
"active_id": salesOrderID,
"active_ids": []int{salesOrderID},
"active_model": "sales.order",
},
},
}
代码基本上是从模型"sale.advance.payment.inv"开始工作,然后调用方法create_invoices。
第一个参数是支付对象。 第二个参数是一个 JSON/Python 字典,完全像这样:
{
'context':
{
'active_id' : so['id'],
'active_ids' : [so['id']],
'active_model': 'sales.order'
}
}
我的自动操作是这样的:
paymentInAdvModel = env["sale.advance.payment.inv"]
paymentInAdv = paymentInAdvModel.create(
{
'advance_payment_method': 'delivered',
'amount': 0,
}
)
paymentInAdv.create_invoices(
[paymentInAdv],
{
'context':
{
'active_id' : so['id'],
'active_ids' : [so['id']],
'active_model': 'sales.order'
}
}
)
自动操作出现此错误:
ValueError: : “create_invoices() 接受 1 个位置参数,但给出了 3 个”在评估时
注意事项:
- 表示
"create_invoices"的方法只需要一个参数。我提供了两个参数,但错误说我输入了三个参数。我假设另一个参数是 Python 的self。 - 我拥有的唯一文档是在此链接中查看 Odoo GitHub 存储库:https://github.com/odoo/odoo/search?q=create_invoices&unscoped_q=create_invoices
- 只引用一个名为
create_invoices的函数,并且只接受一个参数。
- 只引用一个名为
- Go 脚本运行良好。但是这个错误阻止了我将 Go 代码转换为 Python Odoo 的自动操作。
任何人都有解决方案,因此我可以使用 create_invoices() 与 Go 脚本相同的参数吗?
【问题讨论】: