Odoo 使用XML-RPC(Python)从销售订单创建发票

Odoo 使用XML-RPC(Python)从销售订单创建发票,odoo,Odoo,我将遵循外部API文档: 执行我们公司的要求。我需要创建一个销售订单,然后自动创建发票。销售订单部分已完成,但我似乎无法将发票附加到销售订单 我尝试过通过“invoice_id”字段链接它,但文档中没有提到如何在其中提供多个字段。代码如下: many2manyInvoice = [(4, invoice_id)] common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url)) #Admin user Id ui

我将遵循外部API文档:

执行我们公司的要求。我需要创建一个销售订单,然后自动创建发票。销售订单部分已完成,但我似乎无法将发票附加到销售订单

我尝试过通过“invoice_id”字段链接它,但文档中没有提到如何在其中提供多个字段。代码如下:

many2manyInvoice =  [(4, invoice_id)]   

common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))

#Admin user Id
uid = common.authenticate(db, username, password, {})

models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))

models.execute_kw(db, uid, password, 'sale.order', 'write', [[sales_order_id],     {'invoice_ids':many2manyInvoice}])
返回的响应是
200
,但在销售订单级别没有发生任何事情。我认为我定义字段的方式可能不正确


有人能帮忙解决这个问题吗?提前感谢

因为您没有创建销售记录,没有做任何事情就写入销售记录,所以在销售订单级别没有发生任何事情。不确定这是否适用于您的具体情况,但以下是我将要做的

使用形式发票


然后,在创建销售记录时,使用web api运行“发送形式发票”方法。这将处理数据库链接,因为它可能会变得非常复杂。

将发票行链接到相关的销售订单行就足够了。好吧,这也是一个很多领域。您需要知道哪个发票行(ID)将连接到哪个订单行(ID)。只需在sale.order.line上使用write方法并通过使用三元组(例如[(6,0,发票id)]来连接发票行(字段是
发票行
),以覆盖所有连接或单个添加的示例:[(4,发票id_1),(4,发票id_2)…。@CZoellner我可以知道[(6,0,发票id)]中的数字6和0吗表示已编写的?6 i'v,其中的0只是“nothing”的占位符,因为此三元组命令不需要该(第二)位置上的值。我们如何从web api运行方法?我是奥多的新手,所以我对这个不太熟悉。我不知道你行动的具体身份。但这里有一个例子,我用它在Odoo13上通过web API运行操作<代码>模型。执行\u kw(db,uid,密码,'ir.cron','method\u direct\u trigger',10)注意数字10是我在odoo中操作的ID。你的可能会有所不同。