我正在尝试通过将现有发票链接到它来更新现有的sale.order。我已经尝试了几项内容将发票ID 添加到销售订单的 invoice_ids 数组中,但没有任何效果。
这是我的代码:
$link = $models->execute_kw($db, $uid, $password, 'sale.order', 'write',
array(array($order_id),
array('invoice_ids'=>$invoice_id)));
返回1,但不会改变任何内容。我也试过这种方法,但没有成功:https://www.odoo.com/documentation/8.0/reference/orm.html#openerp.models.Model.write
我认为我的语法有问题。
答案 0 :(得分:1)
尝试使用此代码:
#general syntax for many2many field
$many2many_field = array(
new xmlrpcval(
array(
new xmlrpcval(6,"int"),
new xmlrpcval(0,"int"),
new xmlrpcval(array(new xmlrpcval($order_id,"int")),"array")
), "array")
);
array('invoice_ids'=> new xmlrpcval($many2many_field, "array"))
通常我们需要提供类似 [(6,0,[id1,id2等]]]
的格式答案 1 :(得分:0)
下面我发布了使用ripcord
(php rpc库)更新Many2many的代码片段。
$models->execute_kw($db, $uid, $password, 'sale.order', 'write',
array('order_id'=> $order_id,
'invoice_ids'=>array(array(6,0,array($invoice_ids)))
)
);
我希望这对您的情况有所帮助。